0
我有這個小片段,以獲得多維數組的ID。PHP遞歸,在哪裏把回報
<?php
$array = array(
array(
'id' => 1,
'children' => array(
array(
'id' => 12,
'children' => array()
),
array(
'id' => 13,
'children' => array(
array(
'id' => 112,
'children' => array()
)
)
)
)
),
array(
'id' => 140,
'children' => array(
array(
'id' => 144,
'children' => array(
array(
'id' => 101,
'children' => array()
)
)
)
)
),
array(
'id' => 32,
'children' => array(
array(
'id' => 223,
'children' => array()
)
)
),
array(
'id' => 40,
'children' => array()
)
);
function get_ids($array, $result)
{
foreach($array as $a)
{
$result[] = $a['id'] . "\n";
if (count($a['children']))
{
return get_ids($a['children'], $result);
}
}
return $result;
}
print_r(get_ids($array, array()));
該代碼輸出第一數組ids這樣的:
Array
(
[0] => 1
[1] => 12
[2] => 13
[3] => 112
)
如果我而不是$導致[]把回聲並移除返回get_ids返回排它呼應每id作爲意圖,問題是我想讓他們與ID很好的陣列。
我想我搞砸了返回的聲明,但我不知道。
您可以參照這樣做(使用'*&$ result'作爲參數),但是這幾乎不需要:使用'$ result = array_merge($ result,get_ids($ a ['children']))'而不是函數中的第一個'return',你也會好起來的。 – Wrikken