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 递归数组搜索的主要内容,如果未能解决你的问题,请参考以下文章

递归数组搜索

PHP 递归 JSON 子项搜索

递归搜索并在数组中删除?

递归搜索数组中的键

php无限极分类递归写入多维数组的方法

使用 PHP 递归搜索目录中的文件并更改值