array
3 =>
array
4 =>
array
7 => null
8 => null
5 => null
6 => null
现在,例如我想要键7
的路径,它可以这样显示:
array
0 => int 7
1 => int 4
2 => int 3
有人可以帮我解决这种递归函数吗?
答案 0 :(得分:8)
这将返回您正在寻找的内容。如果找不到密钥,它将返回null。
function getkeypath($arr, $lookup)
{
if (array_key_exists($lookup, $arr))
{
return array($lookup);
}
else
{
foreach ($arr as $key => $subarr)
{
if (is_array($subarr))
{
$ret = getkeypath($subarr, $lookup);
if ($ret)
{
$ret[] = $key;
return $ret;
}
}
}
}
return null;
}