PHP - 通过比较所有针的属性来检查对象数组中是否存在对象

时间:2015-03-21 15:13:59

标签: php

我有物件。一个是针,它是具有多个属性的简单对象,另一个是干草堆,它是一组对象。

这是针

DeviceType Object
    (
        [idDeviceType] => 167
        [Name] => monirul
        [TargetURL] => www.google.com
        [idAccessPlan] => 1
    )

这是干草堆,

Array
(
    [0] => DeviceType Object
        (
            [idDeviceType] => 167
            [Name] => monirul
            [TargetURL] => www.google.com
            [idAccessPlan] => 1
        )

    [1] => DeviceType Object
        (
            [idDeviceType] => 168
            [Name] => monirul iPad
            [TargetURL] => www.yahoo.com
            [idAccessPlan] => 1
        )

    [2] => DeviceType Object
        (
            [idDeviceType] => 169
            [Name] => monirul phone
            [TargetURL] => www.bing.com
            [idAccessPlan] => 1
        )
)

现在我想检查我的针是否存在于大海捞针中。不仅是由任何特定属性,还有整个对象属性(idDeviceType,Name,TargetURL,idAccessPlan)。我该如何有效地实现这一目标?提前致谢。

2 个答案:

答案 0 :(得分:1)

使用serialize有很多变化。如果你只是想知道针是否在大海捞针,那么这很简单:

$result = strpos(serialize($haystack), serialize($needle)) !== false;

var_dump($result); //gives true or false

答案 1 :(得分:1)

使用in_array()

if (in_array($object, $array_of_objects)) { /* do stuff */ }

如果要检查数组中是否存在对象的相同实例,请添加“true”:

if (in_array($object, $array_of_objects, true)) { /* do stuff */ }