php 检查所有多维数组中是否存在值

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

目前正在疯狂地研究如何做到这一点,基本上我有一个多维数组,需要一个代码来检查所有值以及值是否存在于所有数组中而不是返回结果。

$array = [
    'visitPoints'=>[
        20=>[2,5,6,8,10,11],
        35=>[2,5,6]
    ],
    'islands'=>[
        20=>[5,10,11],
        35=>[5,6]
    ],
    'animals'=>[
        20=>[5,11],
        35=>[]
    ]
];

我正在寻找的结果是这样的:

$result = [
    20=>[5,11],
    35=>[]
];

这里是示例链接:https://3v4l.org/3ZXOe

php arrays multidimensional-array
1个回答
0
投票

也许是这样的?测试一下这里

$array = [
    'visitPoints'=>[
        20=>[2,5,6,8,10,11],
        35=>[2,5,6]
    ],
    'islands'=>[
        20=>[5,10,11],
        35=>[5,6]
    ],
    'animals'=>[
        20=>[5,11],
        35=>[]
    ]
];

function checkExisting($arr) {
    $result = [];
    $pass = 0;
    foreach($arr as $firstLvlKey=>$firstLvlArray) {
        $pass++;
        foreach($firstLvlArray as $secondLvlKey=>$secondLvlArray) {
            if($pass === 1) {
                $result[$secondLvlKey] = $secondLvlArray;
            } else {
                $result[$secondLvlKey] = array_intersect($result[$secondLvlKey],$secondLvlArray);
            }
        }
    }
    
    return $result;
}

print_r(checkExisting($array));
© www.soinside.com 2019 - 2024. All rights reserved.