递归搜索多维数组并返回其父级键

问题描述 投票:0回答:1

我正在寻找一种方法来查找多维 PHP 数组的所有父级 我有以下数组:

Array
(
    [files] => Array
        (
            [a] => Array
                (
                    [ab] => Array
                        (
                            [0] => ab.jpg
                        )

                    [0] => abc.jpg
                )

            [b] => Array
                (
                    [ba] => Array
                        (
                            [bab] => Array
                                (
                                    [0] => abc.jpg
                                )

                            [bac] => Array
                                (
                                    [0] => abd.jpg
                                )

                            [0] => ade.jpg
                        )

                )

            [c] => Array
                (
                    [cb] => Array
                        (
                            [0] => abf.jpg
                        )

                )

        )

)

我想通过key找到Parents,例如, 要查找密钥的所有父项:'bac'

它应该返回:

files->b->ba->bac
php arrays recursion multidimensional-array filter
1个回答
1
投票

功能:

function array_search_key_recursive($key, array $array) {
    foreach ($array as $i => $child) {
        if ($i === $key) {
            return $i;
        }
        if (!is_array($child)) {
            continue;
        }
        if (false !== $j = array_search_key_recursive($key, $child)) {
            return "{$i}->{$j}";
        }
    }
    return false;
}

测试: http://ideone.com/T2Obqg

© www.soinside.com 2019 - 2024. All rights reserved.