php - 检查对象是否存在于数组中

标签 php arrays object

我有一个包含多个人物对象的数组,这些对象如下所示:

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 存在,其他属性无关紧要。

最佳答案

将对象放入数组时,使用对象 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
}

关于php - 检查对象是否存在于数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524969/

相关文章:

php - 尝试读取数组上的属性 "title"(错误异常)Laravel Php

c++ - 在另一个类中实现一个类的对象

php - 从 PHP 中的 pdf 文件获取文本和图像的最简单方法?

javascript - 如何检查变量是否是 JavaScript 中的数组?

ios - 我想用 1 到 100 的值填充 array2,但保留 array1 中存在的值

javascript - ES6 解构对象数组

javascript - 简单的查找和更新记录功能......我无法工作

c# - 多参数对象类型

php - 获取我们数据库的 Facebook 个人资料图片

php - 无法通过 TortoiseGit 或 msysGit check out 适用于 Windows 8 的 Git 代码。适用于 Ubuntu Git。 "Submodules error"