2013-08-06 4 views
0

Я пытаюсь взять массив и создать новый многомерный с родителями и дочерними элементами. Я могу приблизиться, думаю, но не смотрю прямо.Многомерное массив Foreach Tree

$value->menu_item_parent //Contains the parent value that can be used for key 

Что я не хватает?

$the_mega = array(); 
foreach ($menuitems as $key => $value) { 
    if ($value->menu_item_parent=='0') { 
     $the_mega["parents"][]=$value->title; 
    }else{ 
     $the_mega[$value->title]["childs"]=$value->title; 
    }  
} 
} 
echo '<pre>'; 
print_r($the_mega); 
echo '</pre>'; 

Array 
(
    [parents] => Array 
     (
      [0] => Parent 1 
      [1] => Parent 2 
     ) 

    [Child 1] => Array 
     (
      [childs] => Child 1 
     ) 

    [Child 2] => Array 
     (
      [childs] => Child 2 
     ) 

    [Child 3] => Array 
     (
      [childs] => Child 3 
     ) 

) 
+0

Можете ли вы опубликовать var_dump или print_r в '$ menu_items'? – MightyPork

+0

Я все еще немного не понимаю цель. Считаете ли вы, что вы могли бы опубликовать образец вывода того, что вы хотели бы *, чтобы конец массива выглядел? – Katana314

+1

Что именно вы хотите достичь? Должен ли Child1/2 быть элементами [0]? – MBaas

ответ

0

Попробуйте это:

$the_mega = array(); 
foreach ($menuitems as $key => $value) { 
    if ($value->menu_item_parent=='0') { 
     $the_mega[$key]['parents'][]=$value->title; 
    }else{ 
     $the_mega[$value->title]['childs'][]=$value->title; 
    }  
} 
+0

Как дети могут быть массивом каждого родителя? – Codex73

+0

обновленный приведенный выше код. –

Смежные вопросы