Есть массив | Код | 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; }
|
|