什么是最快、最有效的实现搜索方法的方法,该方法将返回具有限定 id
的对象?
示例对象数组:
$array = [
(object) ['id' => 'one', 'color' => 'white'],
(object) ['id' => 'two', 'color' => 'red'],
(object) ['id' => 'three', 'color' => 'blue']
];
我在里面写了什么:
function findObjectById($id){
}
如果我调用,期望的结果将返回 $array[0]
处的对象:
$obj = findObjectById('one')
否则,如果我将“四”作为参数传递,它将返回 false
。
最佳答案
您可以迭代该对象:
function findObjectById($id){
$array = array( /* your array of objects */ );
foreach ( $array as $element ) {
if ( $id == $element->id ) {
return $element;
}
}
return false;
}
编辑:
更快的方法是使用一个数组,其键等于对象的 ID(如果唯一);
然后您可以按如下方式构建您的函数:
function findObjectById($id){
$array = array( /* your array of objects with ids as keys */ );
if ( isset( $array[$id] ) ) {
return $array[$id];
}
return false;
}
关于php - 通过特定属性的值在数组中搜索对象的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106772/