【发布时间】:2021-07-02 00:33:25
【问题描述】:
我想在一个多维数组中找到第二个键的父键,像这样:
Array
(
[REG-4] => Array
(
[9007] => MANADO
[9012] => MAMBAL
[9078] => SEMBUNG GEDE
[90A8] => BANYUWANGI
)
[REG-2] => Array
(
[9009] => SUBANG
[9013] => CITEUREUP
[9014] => BABAKAN PARI
[9017] => CIANJUR
[9018] => CIHERANG
[9052] => LEGOS
[9076] => SENTUL
[90A0] => CARINGIN
[9101] => MEKARSARI
[9103] => BEKASI
)
)
我有这个代码来实现这样的东西 => recursion(array,9007) = REG-4
function recursion($array,$needle,$parent=null){
foreach($array as $key => $value){
if(is_array($value)){
recursion($value,$needle,$parent=$key);
}
else if($key==$needle){
return $parent;
}
}
}
但我的问题是返回不会停止递归。找到正确的父级后,该功能仍将继续。如果我的递归函数中有任何错误的逻辑,需要一些帮助。
最好的
【问题讨论】:
-
如果数组只有两层,那为什么要使用递归呢?如果它可以有更多级别 - 那么请展示这种情况的适当示例。
-
返回正确的结果吗?我认为递归调用应该有
return recursion(...),而不仅仅是recursion(...)。 -
@CBroe 我认为该数组将来可以有更多的深度,但为简单起见,我只使用了一个两级数组。
-
@mickadoo 是的,当我打印结果时,它恰好在“9007”处停止,但循环继续到下一个键(REG-2)