我从API获得了一个大数据集,我得到的数组包含更多的对象,包括:id,name,place,zip。
现在我需要创建过滤这个数组,代码是:
$all_objects = $api_result->body->objects;
当然我可以使用 foreach()来做到这一点,但是对于表演过滤它的最佳方法是什么,比如id 973来获取对象?
答案 0 :(得分:1)
您可以使用array_filter。
假设$all_objects
是一个公共属性为id
,name
等的对象数组......
示例代码:
$lookup = 973
$filtered = array_filter($all_objects, function($object) use($lookup) {
return ($object->id === $lookup);
});
现在$filtered
只有一个(大概)对象,公共财产“id”有973
注意:正如@timurib和@federkun都指出的那样,这不是过滤数组的最快方法。在所有其他条件相同的情况下,做一个简单的预言,faster。但是你要刮几毫秒,可以说使用array_*
函数可以使代码更清晰。