php 递归数组搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 递归数组搜索相关的知识,希望对你有一定的参考价值。

 private function searchMissedParameters(array $metadata)
    {
        //create a recursive iterator to loop over the array recursively
        $iterator = new RecursiveIteratorIterator(
            new RecursiveArrayIterator($metadata),
            RecursiveIteratorIterator::SELF_FIRST
        );

        $parameters = [];
        //loop over the iterator
        foreach ($iterator as $key => $value) {
            // go deeper - recursive chain
            if (is_array($value)) {
                continue;
            }

            if (preg_match(self::PARAMETER_PATTERN, $value, $output)) {
                // add the current key if it's not a recursion
                if ($iterator->getDepth() == 0) {
                    $parameters[$key] = 1;
                }
                //loop up the recursive chain
                $recursiveKey = null;
                for ($i = 0; $i < $iterator->getDepth(); $i++) {
                    $recursiveKey = "{$recursiveKey}.{$iterator->getSubIterator($i)->key()}";
                }
                if (null != $recursiveKey) {
                    $recursiveKey = ltrim("{$recursiveKey}.{$key}", ".");
                    $parameters[$recursiveKey] = 2;
                }
            }
        }

        return $parameters;
    }

以上是关于php 递归数组搜索的主要内容,如果未能解决你的问题,请参考以下文章

递归搜索数组中的键

使用递归搜索整数数组中元素的所有组合

text 递归搜索JSON数组 - 按键获取值

php 递归数组搜索

PHP 递归数组密钥搜索

递归数组键搜索