我有以下std对象数组
Array
(
[0] => stdClass Object
(
[id] => 545
)
[1] => stdClass Object
(
[id] => 548
)
[2] => stdClass Object
(
[id] => 550
)
[3] => stdClass Object
(
[id] => 552
)
[4] => stdClass Object
(
[id] => 554
)
)
我想使用循环搜索[id]
键的值。我有以下条件来检查值是否存在,如下所示
$flag = 1;
if(!in_array($value->id, ???)) {
$flag = 0;
}
???
我希望在std对象的[id]
键数组中搜索。
任何人都能帮助我吗?
答案 0 :(得分:2)
如果数组不是太大或需要多次执行测试,则可以映射数组中的属性:
$ids = array_map(function($item) {
return $item->id;
}, $array);
然后:
if (!in_array($value->id, $ids)) { ... }
答案 1 :(得分:1)
尝试:
foreach ($array as $val) {
if (!in_array($id, (array) $val)) {
...
}
}
答案 2 :(得分:0)
为什么不将对象转换为数组:
foreach ($array as $a) {
if (!in_array($id, (array) $a)) {
...
}
}
答案 3 :(得分:0)
假设您的数组是名称$yourArray
,
$newArr = array();
foreach ($yourArray as $key=>$value) {
$newArr[] = $value->id;
}
现在$newArr
就像:array(545,548,550,552,554)
AND 您可以通过以下方式进行搜索:
$valueOfSearch = ... ;
$flag = 1;
if(!in_array($valueOfSearch,$newArr)) {
$flag = 0;
}