所以我有这个(简单的)方法:PHP:从递归阵列搜索功能
/**
* @param $needle
* @param $haystack
*
* @return array
*/
public function recursiveArraySearch($needle, $haystack)
{
$array = false;
foreach ($haystack as $key => $value) {
if ($key === $needle) {
$array = $value;
} elseif (is_array($value)) {
$this->recursiveArraySearch($needle, $value);
}
}
return $array;
}
被称为像这样: $result = $this->recursiveArraySearch('some_index', $configArray);
它我有麻烦返回它一劳永逸回到$ result`。
如果$needle
与$key
匹配,那么我只是想让它返回值,但此时它正在返回自己。
我还没有实际做过的事情。
由于
UPDATE:当我返回方法的答案提示,它达到一个数组节点(像一个二叉树搜索)的端部之穿过作为$haystack
并因此返回false一个字符串。
数据结构: 我可能想获得关键的价值盘旋红色或我可能要在关键的价值盘旋橙色?
该函数需要返回false。
在递归分支中,你没有对从递归调用返回的值进行任何操作(即将其添加到正在构建的数组中),可以说明您打算返回到哪种数据结构初始呼叫者谁初始呼叫此方法? –
@MikeBrant我更新了问题的数据结构。 – Kal
@凯我不清楚是否你想返回所有匹配或第一次匹配。这两个用例,因为它似乎接受的答案只涵盖用于查找单个匹配的用例 –