首页  >  文章  >  后端开发  >  如何在 PHP 中删除数组中的重复对象?

如何在 PHP 中删除数组中的重复对象?

Linda Hamilton
Linda Hamilton原创
2024-11-04 08:49:02392浏览

How to Remove Duplicate Objects from an Array in PHP?

如何在 PHP 中从数组中删除重复的对象

array_unique() 函数可以识别并消除数组中的重复元素。但是,对于包含对象的数组,此功能可能不会立即显现出来。要有效删除重复的对象,需要进行某些修改。

使用 SORT_REGULAR 的解决方案

要使 array_unique() 能够正确处理对象,请将 SORT_REGULAR 标志指定为第二个参数:

<code class="php"><?php
class MyClass {
    public $prop;
}

$foo = new MyClass();
$foo->prop = 'test1';

$bar = $foo;

$bam = new MyClass();
$bam->prop = 'test2';

$test = array($foo, $bar, $bam);

print_r(array_unique($test, SORT_REGULAR));
?></code>

输出:

Array (
    [0] => MyClass Object
        (
            [prop] => test1
        )

    [2] => MyClass Object
        (
            [prop] => test2
        )
)

解释

通过使用 SORT_REGULAR,array_unique() 函数本质上比较了每个对象,将具有相同属性值的对象视为重复对象。

注意

虽然此方法有效地删除重复对象,但需要注意的是,它依赖于 ==比较而不是更严格的 === 比较。这意味着具有不同身份但相同属性的对象仍将被视为重复。

以上是如何在 PHP 中删除数组中的重复对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn