php - 按值获取所有数组键

标签 php arrays multidimensional-array

假设我有一个这样的数组:

Array
(
[Start] => Array
    (
        [Item 1] => Array
            (
                [0] => Item 1_1
                [Item 2_1] => Array
                    (
                        [Item 2_1_1] => x
                    )

                [1] => Item 3_1
            )

        [0] => Item 2
        [1] => Item 3
    )

)

是否有一个 php 函数可用于获取指向数组中值 x 的路径,这意味着,在这种情况下,结果将是:

Start, Item 1, Item 2_1, Item 2_1_1, x

最佳答案

我目前能想到的唯一方法是大量嵌套的 foreach ($array as $key => $value) 循环和 array_search()

虽然将其设计为递归的会更好,因此使用函数是明智的。

function recursiveSearch($key, $array)
{
    foreach ($array as $k => $ar) {
        if (is_array('x', $ar)) {
            return $k . ', ' . array_search('x', $ar);
        } else {
            if ($ar === 'x') {
                return $k
            } else {
                return recursiveSearch($key, $ar);
            }
        }
    }
}

只是一个尝试,不一定有效或类似的东西。

关于php - 按值获取所有数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14902353/

相关文章:

java - 用户输入一次填充数组 JAVA 一个值

C++:可变长度多维数组

Python:修改包含数组 View 的单个字典项会修改所有项

php - Laravel 子查询

php - 除非启用 Javascript,否则使用 php 函数

Java:使用 n 变量或使用硬编码数组元素之间是否存在性能差异?

c++ - 如何将这个成对列表转换为包含数组数组的对象?

javascript - 通过循环二维数组创建多个对象?

php - Facebook api 不像不工作

php - 如何从 WordPress 中的插件 php 编辑 mySQL wp_posts 表?