我有一个包含多个person-objects的数组,这个对象看起来像这样:
id: 1,
name: 'Max Muster',
email: 'max.muster@example.com',
language: 'German'
现在,我在另一个数组中有对象,它们看起来并不完全相同:
id: 1,
name: 'Max Muster',
email: 'max.muster@example.com',
language: 'de'
我有一个foreach循环来循环遍历数组2并检查对象是否存在于数组1中。
foreach($array2 as $entry) {
if(existsInArray($entry, $array1)) {
// exists
} else {
// doesn't exist
}
}
是否有一个要检查的函数(比如我的existsInArray()),如果我的对象存在于数组中?我只需要检查一下,如果object-id存在,其他属性无关紧要。
答案 0 :(得分:7)
将对象放入数组时使用对象ID作为键:
$array1[$object->id] = $object;
然后使用isset($array1[$object->id])
检查对象是否已存在于$array
:
if (isset($array1[$object->id])) {
// object exists in array; do something
} else {
// object does not exist in array; do something else
}
答案 1 :(得分:0)
它没有,但你可以写下来:
function existsInArray($entry, $array) {
foreach ($array as $compare) {
if ($compare->id == $entry->id) {
return true;
}
return false;
}
答案 2 :(得分:0)
foreach($array2 as $entry) {
if(in_array($entry, $array1)) {
// exists
} else {
// doesn't exist
}
}
使用in_array检查数组中是否存在该特定对象
答案 3 :(得分:0)
使用in_array
if(in_array($object, array)) {
//exists
} else {
//does not exist
}