PHP:
скопировать код в буфер обмена
$result = $this->get_cat($resdata); //Формирование массива с помощью рекурсивной функции $navigation=$this->view_cat($result); public function get_cat($menu) { if(!$menu) { return NULL; } //В цикле формируем массив foreach ($menu as $key=>$row){ //Формируем массив где ключами являются адишники на родительские категории if(empty($arr_cat[$row['parent_id']])) { $arr_cat[$row['parent_id']] = array(); } $arr_cat[$row['parent_id']][] = $row; } //возвращаем массив return $arr_cat; } }
PHP:
скопировать код в буфер обмена
public function view_cat($arr,$parent_id = 0,$navi=null) { //А здесь бы я написал такую функцию //если в вновь пришедшем $navi массиве parent_id соответствует уже имеющемуся id //то вложить этот вновь пришедший $navi в элемент ['pages'] имеющегося $this->nv $this->nv[]=$navi; //Условия выхода из рекурсии if(empty($arr[$parent_id])) { return; } //перебираем в цикле массив и выводим на экран for($i = 0; $i < count($arr[$parent_id]);$i++) { $navi['label']=$arr[$parent_id][$i]['category']; $navi['name']=$arr[$parent_id][$i]['name_menu']; //рекурсия - проверяем нет ли дочерних категорий $this->view_cat($arr,$arr[$parent_id][$i]['id'],$navi); } }
Сейчас я получаю последовательный вывод причем правильный если первая пара должна содержать вложенность то пара которая должна быть вложена выводится за ней но самой вложенности нет, помогите написать функцию которая будет вкладывать вновь полученный $navi в зависимости(Отредактировано автором: 19 Августа, 2016 - 19:34:32)
|