我得到了一个对象数组,该对象数组可能包含很多元素,超过数千个,等等。该对象可能如下所示:
object(Node)#21489 (15) {
["id"]=>
string(7) "balance"
["type"]=>
string(1) "4"//...and so other fields
}
我需要搜索的对象的阵列查找和对象,具有一定的id。目前,我可以用foreach
循环的帮助下做到这一点,是这样的:
foreach($nodes_array as $node) {
if ($node->id == 'my certain id') {
return $node;
}
}
,但问题是,它需要太过长...遍历整个阵列找到所需要的对象。有没有更有效的方法(或重构的方法)做出这样的搜索速度更快(可能是迭代器或其他水木清华)? 谢谢。
答案 0 :(得分:4)
执行一次
$nodes_array2 = [];
foreach($nodes_array as $node) {
$nodes_array2[$node->id] = $node;
unset($nodes_array);
然后
return $nodes_array2['my certain id'];