【发布时间】:2011-11-14 15:22:30
【问题描述】:
我有两个对象数组,
它们是相同的,只是一个有更多的项目,
所以他们看起来像
Array [arrayA]
(
[0] => stdClass Object
(
[id] => 2
[name] => interest 1
[description] => interest one
)
[1] => stdClass Object
(
[id] => 4
[name] => interest 3
[description] => interest three
)
)
Array [arrayB]
(
[0] => stdClass Object
(
[id] => 1
[name] => all
[description] => everything
)
[1] => stdClass Object
(
[id] => 2
[name] => interest 1
[description] => interest one
)
[2] => stdClass Object
(
[id] => 4
[name] => interest 3
[description] => interest three
)
[3] => stdClass Object
(
[id] => 5
[name] => interest 4
[description] => interest four
)
)
现在我想做的是,循环遍历arrayB,如果在arrayA 中找到对象(也许比较ID?)然后设置[checked] => true 否则设置[checked] = false on arrayB。
最简单的方法是什么?
我想过做也许
foreach($arrayB as &$obj){
$obj->checked = false;
foreach($arrayA as $obja){
if($obja->id == $obj->id){
$obj->checked = true;
break;
}
if($obja->id > $obj->id) //thanks to De3pTh0ught
break;
}
}
但一定有更有效的方法吗?
【问题讨论】: