【发布时间】:2020-05-12 17:42:55
【问题描述】:
我正在尝试递归循环遍历我的多维数组,如果数组有键,我想返回当前数组。
我试图让它尽可能简单,但这返回奇怪的类型错误让我感到困惑。
在 foreach 循环中,如果嵌套项是一个数组,则再次运行该函数,直到找到该键的出现。
挠头,谁能看到我的问题。谢谢。
<?php
/**
* @param int|string $key
* @param array $array
* @return bool|array
*/
public static function multi_array_key_exists($key,$array): bool
{
// if array key exist in this dimension
if (array_key_exists($key,$array)) {
// return the array
return $array;
} else {
// foreach array as nested item
foreach ($array as $nested) {
// if the nested item is an array
if (is_array($nested))
// run this function again
self::multi_array_key_exists($key,$nested);
}
}
return false;
}
【问题讨论】:
-
你应该返回递归调用给你的东西,当它不是
false时。 -
如果键存在,我将返回数组,如果它不存在,重用函数也会返回 false,我不太确定你的意思
-
请向我们提供有关您遇到的错误和您尝试的阵列的信息。
-
我最初重写了您的代码以返回顶级数组而不是带有键的嵌套数组(这就是答案被否决的原因)。我更正了嵌套数组的答案,但你能澄清一下应该返回哪一个吗?
-
我已经对数组进行了评论,但仍然没有返回包含键
form的数组