<?php
$categories = array(
array(
'parent_id' => 0,
'categories_id' => 1,
),
array(
'parent_id' => 1,
'categories_id' => 11,
),
array(
'parent_id' => 1,
'categories_id' => 111,
),
array(
'parent_id' => 0,
'categories_id' => 2,
),
array(
'parent_id' => 2,
'categories_id' => 22,
),
);
$tree = array();
foreach ($categories as $category) {
$tree = &build($tree, $category);
}
// var_export($tree);
function &build(&$tree = array(), $category) {
if (empty($category)) {
return;
}
if ($category['parent_id'] == 0 && ! isset($category['childs'])) {
$category = array_merge($category, array('childs' => array()));
$tree = array_merge($tree, $category);
return $tree;
}
foreach ($tree as $parent_id => $cate) {
var_dump($tree);
if ($category['parent_id'] == $parent_id) {
$cate[$parent_id]['childs'] = $category;
}
if (is_array($cate)) {
return build($tree, $category);
}
}
return $tree;
}
preferences:
59.48 ms | 402 KiB | 5 Q