php - 在多维树状数组中查找键的路径

标签 php recursion

嘿,我有这个数组(实际数组可以是几层深度并跨越树结构)

array
  3 => 
    array
      4 => 
        array
          7 => null
          8 => null
      5 => null
  6 => null

现在,例如我想要键 7 的路径,它可以这样显示:

array
  0 => int 7
  1 => int 4
  2 => int 3

谁能帮我实现这样的递归函数?

最佳答案

这将返回您正在寻找的内容。如果找不到 key ,它将返回 null。

In codepad.

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;
}

关于php - 在多维树状数组中查找键的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4381352/

相关文章:

go - 在 Go 中递归选择子项的有效方法?

php - 在 MysQl 中插入多个复选框值

php - 浏览表格以获取股票的唯一证书编号

php - 甲骨文、PDO_OCI 与 OCI8

python - 此递归函数的迭代版本

recursion - 在 Scheme 中,如何使用 lambda 创建递归函数?

php - 购物车持久性 : $_SESSION or browser cookie?

PHP:用于登录的 Cookie

java - Java 中使用递归解决迷宫

python - 在递归函数中返回或不返回