Php 在多维树状数组中查找键的路径
嘿,我有这个阵列(实际的阵列可以是几层深,跨越一个树状结构) 现在,例如,我想要键Php 在多维树状数组中查找键的路径,php,recursion,Php,Recursion,嘿,我有这个阵列(实际的阵列可以是几层深,跨越一个树状结构) 现在,例如,我想要键7的路径,它可以如下所示: array 0 => int 7 1 => int 4 2 => int 3 有人能帮我使用这样一个递归函数吗?这将返回您想要的东西。如果找不到密钥,它将返回null 结束条件:如果该键存在,则返回一个包含该键的数组;否则,它会检查数组中的每个值,以查看它是否为数组。如果是这样,它将在子阵列上自行运行。如果结果是一个数组,它会在返回数组上追加当前键并返回
7
的路径,它可以如下所示:
array
0 => int 7
1 => int 4
2 => int 3
有人能帮我使用这样一个递归函数吗?这将返回您想要的东西。如果找不到密钥,它将返回null
结束条件:如果该键存在,则返回一个包含该键的数组;否则,它会检查数组中的每个值,以查看它是否为数组。如果是这样,它将在子阵列上自行运行。如果结果是一个数组,它会在返回数组上追加当前键并返回它。如果找不到查找,则返回null(返回值检查失败)。
array
0 => int 7
1 => int 4
2 => int 3
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;
}