Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расставить тэги <ul><li> в цикле 
:(
    Опции темы
supercelt
Дата 16.12.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Есть массив

Код

Array ( 
[0] => Array ( 
    [34] => Array ( 
        [0] => 5 
        [1] => Контент сайта 
        [2] => 34 
        [3] => 0 
        [4] => Контент сайта ) 
    [35] => Array ( 
        [0] => 6 
        [1] => Статьи 
        [2] => 35 
        [3] => 0 
        [4] => Web дизайн ) 
    [36] => Array ( 
        [0] => 6 
        [1] => Статьи 
        [2] => 36 
        [3] => 0 
        [4] => Web программирование ) 
    [40] => Array ( 
        [0] => 6 
        [1] => Статьи 
        [2] => 40 
        [3] => 0 
        [4] => Joomla ) 
) 
[36] => Array ( 
    [37] => Array ( 
        [0] => 6 
        [1] => Статьи 
        [2] => 37 
        [3] => 36 
        [4] => PHP ) 
    [38] => Array ( 
        [0] => 6 
        [1] => Статьи 
        [2] => 38 
        [3] => 36 
        [4] => JavaScript ) 
) 
[37] => Array ( 
    [39] => Array ( 
        [0] => 6 
        [1] => Статьи 
        [2] => 39 
        [3] => 37 
        [4] => MySQL ) 
) 
) 


После вывода 

Код

function getParentSort($array, $parent = 0, $level = 0, $last_level = 0, $s_id = 0){
        foreach( $array as $id => $root){
            if($parent!=$id)continue;
                if(count($root)){
                $level++;
                    foreach($root as $key => $title){
                    $first_section = $s_id;
                        if($s_id != $title[0] or $s_id == 0){
                        $out .= $title[1]."<br />";
                        }
                        $out .= str_repeat("-", $level).$title[4]."<br />;
                        $s_id = $title[0];
                        $last_level = $level;
                            if(count($array[$key])){    
                            $out .= modTreeSC::getParentSort($array, $key, $level, $last_level, $s_id);
                            }
                    }
                }    
        }
    return $out;    
    }


получается вот так:

Код

Контент сайта
-Контент сайта

Статьи
-Web дизайн
-Web программирование
--PHP
---MySQL
--JavaScript
-Joomla


Требуется обрамить всё тэгами вот так:

Код

<li>Контент сайта
    <ul>
        <li>Контент сайта</li>
    </ul>
</li>
<li>Статьи
    <ul>
        <li>Web дизайн</li>        
        <li>Web программирование
            <ul>
                <li>PHP
                    <ul>
                        <li>MySQL</li>
                        <li>JavaScript</li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>Joomla</li>
    </ul>
</li>


Запутался, не понимаю как это всё расставить в цикле, что бы правильно повторялось. Вот мой вариант но он не рабочий
Код


function getParentSort($array, $parent = 0, $level = 0, $last_level = 0, $s_id = 0){
        foreach( $array as $id => $root){
            if($parent!=$id)continue;
                if(count($root)){
                $level++;
                    foreach($root as $key => $title){
                    $first_section = $s_id;
                        if($s_id != $title[0] or $s_id == 0){
                        $out .= ($first_section == 0 ? "" : "</li></ul></li>")."<li>".$title[1]."<ul>";
                        }
                        $out .= ($level != $last_level ? "" : "</li>")."<li>".$title[4];
                        $s_id = $title[0];
                        $last_level = $level;
                            if(count($array[$key])){    
                            $out .= modTreeSC::getParentSort($array, $key, $level, $last_level, $s_id);
                            }
                    }
                }    
        }
    return $out;    
    }

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.