【发布时间】:2016-05-30 11:49:28
【问题描述】:
我有一个包含多个人员对象的数组,这些对象如下所示:
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存在,其他属性都没有关系。
【问题讨论】:
-
使用
array_diff检查两个数组是否相同。 -
由于对象不同,所以不能简单的比较一下是否相同。什么使第一个数组中的对象与第二个数组中的对象匹配?一样的身份证?一样的名字?同一个邮箱?同一种语言?这些的某种组合?
-
是的,需要将它们转换为数组而不是
array_diff。 -
如果您使用 id 作为数组键,这会变得更容易。
-
只是id,必须相同