我有对象。一个是针,它是具有多个属性的简单对象,另一个是对象数组的草垛。
这是针头
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)。我怎样才能有效地做到这一点?提前谢谢。
使用serialize
有很多变化。若你们只是想知道针是否在大海捞针,那个么这很简单:
$result = strpos(serialize($haystack), serialize($needle)) !== false;
var_dump($result); //gives true or false
使用in_array()。
if (in_array($object, $array_of_objects)) { /* do stuff */ }
如果您想检查数组中是否存在对象的相同实例,请添加"true":
if (in_array($object, $array_of_objects, true)) { /* do stuff */ }