首页 > 解决方案 > 如何检查具有 id 值的对象数组是否不存在于 php 中的另一个对象数组中?

问题描述

我有两个对象数组,例如

$array1 = [{id: '12',amount:'23'},{id:'10',amount:'129'},{id:'8', amount:'47'}];

$array2 = [{id: '3', date:'23'},{id:'4', date:'12'},{id:'6', date:'21'}];

我想检查第一个数组的所有 id (12,10,8) 到第二个。如果数组 2 中不存在这些 ID。它将var_dump('not matched')

我试图这样做,但是当第一个元素不匹配时,它被停止以进一步迭代并显示“未找到”状态。


 foreach ($array1 as $value) {
            foreach ($array2 as $value2) {
                if ($value['id'] !== $value2['id']) {
                   var_dump('not found');
                }
            }
        }

我希望在所有迭代完成后显示输出结果。

标签: phparraysloops

解决方案


你可以array_diff使用array_column

if(!array_diff(array_column($array1, 'id'), array_column($array2, 'id'))){
  echo 'Not matched';
}

推荐阅读