我正在尝试编写一个递归数组迭代器函数,该函数将返回由“$needle”指定的所有集合的结果集。其中$needle = key。
以下是我的函数:
以下是我的函数:
function recursive($needle, $array, $holder = array()) {
foreach ($array as $key => $value) {
if (gettype($value) == 'array') {
if ($key != $needle) {
recursive($needle, $value);
} elseif ($key == $needle) {
if (!empty($value)) {
array_push($holder, $value);
}
}
}
}
return $holder;
}
但是我并没有收到全部结果,反而得到了一些空的结果,如果我不指定 !empty($value)
,虽然输入数组中没有任何空集。我做错了什么?
elseif
分支存在一样。 - lethal-guitar