首页 > 解决方案 > 查找一个多维数组中的所有元素是否存在于另一个中(使用多维数组作为大海捞针)

问题描述

我一直在尝试使用一些逻辑来查看多维数组(干草堆)中的所有元素是否在另一个更大的干草堆中退出。我的第一个干草堆首先来自一个 json 对象,第二个是一个“点名”字符串,它也被转换为一个数组。这里的逻辑是我可以使用一个字符串以一种简单的方式描述我在 json 中寻找的内容:

针:

Array
(
    [key1] => Array
        (
            [provider] => Array
                (
                    [id] => 1
                )

        )

    [key2] => Array
        (
            [consumer] => Array
                (
                    [id] => 5
                )

            [hostname] => foo
        )

)

草垛:

           [0] => Array
                (
                    [id] => 1000
                    [consumer] => Array
                        (
                            [id] => 5
                            [name] => test
                    [hostname] => foo
           [1] => Array
                (
                    [id] => 1200
                    [provider] => Array
                        (
                            [id] => 5
                            [name] => test
                   

如果指针存在于数组中,则应返回顶部键。因此,如果我们假设“key2”以下的所有键-> 值都存在于数组中,我们应该返回 key2。provider-id 和 consumer-id 不相同,可能还有其他看起来相同但路径不同的键值对。因此,如果“主机名”存在,但更深入到不匹配的数组中。

问题是我遇到的所有示例都有:

有没有办法做到这一点?recursiveiteratoriterator 确实出现在我的脑海中,但基于上述内容,我不确定实际如何使用它。

我还查看了各种 in_array/is_array/array_map/array_filter 递归示例,但它们有点混乱,我无法决定是否值得尝试构建允许以一种好的方式抓取两个数组的东西。

我的数组非常大,并且包含大部分我不感兴趣的项目。但如果我能找到一种可行的方法,我相信我可以优化那部分。

谢谢阅读。

标签: phparraysmultidimensional-array

解决方案


推荐阅读