Ben geri kök değeri için, bir dizi düğümden tam yolunu döndüren bir işlev oluşturmak istiyorum. Ben bir özyinelemeli işlev yapmaya çalıştım, ama tamamen şans bitti. Bu ne için uygun bir yol olurdu? Ben bir özyinelemeli işlev tek yolu olduğunu varsayıyorum?
İşte dizi var:
Array
(
[0] => Array
(
[id] => 1
[name] => Root category
[_parent] =>
)
[1] => Array
(
[id] => 2
[name] => Category 2
[_parent] => 1
)
[2] => Array
(
[id] => 3
[name] => Category 3
[_parent] => 1
)
[3] => Array
(
[id] => 4
[name] => Category 4
[_parent] => 3
)
)
Düğüm id # 4 tam yolunu alırken Sonuç Ben çıktı benim işlevi istiyorum:
Array
(
[0] => Array
(
[id] => 1
[name] => Root category
[_parent] =>
)
[1] => Array
(
[id] => 3
[name] => Category 3
[_parent] => 1
)
[2] => Array
(
[id] => 4
[name] => Category 4
[_parent] => 3
)
)
Benim özyinelemeli beceri herkesin bildiği kötü örnek:
function recursive ($id, $array) {
$innerarray = array();
foreach ($array as $k => $v) {
if ($v['id'] === $id) {
if ($v['_parent'] !== '') {
$innerarray[] = $v;
recursive($v['id'], $array);
}
}
}
return $innerarray;
}