我不擅長遞歸從來不必處理它,但最近我需要。生成多維數組和遞歸嵌套子元的遞歸函數
我不得不遞歸生成多維數組,並找到一種方法,在這裏做到這一點:Recursive function to generate multidimensional array from database result
但是我現在還需要計算每一個兒童的父母有量,我不知道我將如何採取下面的函數來實現這個功能?
function generateCorrectArray(array $elements, $parentId = 0) {
$branch = array();
foreach ($elements as $key => $element) {
if ($element['parent'] == $parentId) {
$children = generateCorrectArray($elements, $element['category_id']);
if ($children) {
$element['children'] = $children;
}
$branch[$element['category_id']] = $element;
}
}
return $branch;
}
EDIT
陣列I開始:
$someArray = array(
array(
"id"=> 1,
"name"=> "somename1",
"parent"=> 0,
"childrenCount" => 0,
"children" => 0
),
array(
"id"=> 53,
"name"=> "somename2",
"parent"=> 1,
"childrenCount" => 0,
"children" => 0
),
array(
"id"=> 921,
"name"=> "somename3",
"parent"=> 53,
"childrenCount" => 0,
"children" => 0
)
電流功能結果
$someArray = array(
array(
"id"=> 1,
"name"=> "somename1",
"parent"=> 0,
"children" => array(
array(
"id"=> 53,
"name"=> "somename2",
"parent"=> 1,
"children" => array(
array(
"id"=> 921,
"name"=> "somename3",
"parent"=> 53,
"children" => array(
)
)
)
)
)
)
我希望它也能爲每個嵌套的孩子計數。
目標
$someArray = array(
array(
"id"=> 1,
"name"=> "somename1",
"parent"=> 0,
"childrenCount"=> 2,
"children" => array(
array(
"id"=> 53,
"name"=> "somename2",
"parent"=> 1,
"childrenCount"=> 1,
"children" => array(
array(
"id"=> 921,
"name"=> "somename3",
"parent"=> 53,
"childrenCount"=> 0,
"children" => array(
)
)
)
)
)
)
在先進的感謝。
沒有人?我猜這可能是一件困難的事情。 –