如何检查php中另一个对象数组中是否不存在id值为的对象数组?
我有两个对象数组,比如如何检查php中另一个对象数组中是否不存在id值为的对象数组?,php,arrays,loops,Php,Arrays,Loops,我有两个对象数组,比如 $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)。 如果这些ID不在数组2中。它将var\u转储(“不匹配”) 我试图这样做,但当fist元素不匹配时,
$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)。
如果这些ID不在数组2中。它将var\u转储(“不匹配”)
我试图这样做,但当fist元素不匹配时,它被停止进一步迭代并显示“未找到”状态
foreach($array1作为$value){
foreach($array2为$value2){
如果($value['id']!=$value2['id']){
变量转储(“未找到”);
}
}
}
我希望在所有迭代完成后显示输出结果。您可以使用
array\u diff
和array\u column
if(!array_diff(array_column($array1, 'id'), array_column($array2, 'id'))){
echo 'Not matched';
}
您可以将
array\u diff
与array\u列一起使用
if(!array_diff(array_column($array1, 'id'), array_column($array2, 'id'))){
echo 'Not matched';
}
谢谢你帮我,但是, 我刚刚找到一个解决方案,我使用循环迭代计数器。 它计算迭代次数,并根据数组长度检查是否完成所有迭代
foreach ($array1 as $value) {
$notFound = 0;
foreach ($array2 as $value2) {
if ($value['id'] === $value2['id']) {
var_dump('match found')
}
} else {
$notFound++;
}
}
if ($notFound === count($array2)) {
var_dump('not found')
}
}
谢谢你帮我,但是, 我刚刚找到一个解决方案,我使用循环迭代计数器。 它计算迭代次数,并根据数组长度检查是否完成所有迭代
foreach ($array1 as $value) {
$notFound = 0;
foreach ($array2 as $value2) {
if ($value['id'] === $value2['id']) {
var_dump('match found')
}
} else {
$notFound++;
}
}
if ($notFound === count($array2)) {
var_dump('not found')
}
}
如果你在array2中找到了怎么办?
json\u decode()
,array\u column()
,在数组中找到了会有帮助。如果你在array2中找到了怎么办?json\u decode()
,array\u column()
,在数组中找到了会有帮助。