PHP按键过滤大数组的方法?

时间:2016-12-23 10:01:25

标签: php arrays php-7

我从API获得了一个大数据集,我得到的数组包含更多的对象,包括:id,name,place,zip。

现在我需要创建过滤这个数组,代码是:

$all_objects = $api_result->body->objects;

当然我可以使用 foreach()来做到这一点,但是对于表演过滤它的最佳方法是什么,比如id 973来获取对象?

1 个答案:

答案 0 :(得分:1)

您可以使用array_filter

假设$all_objects是一个公共属性为idname等的对象数组......

示例代码:

$lookup = 973
$filtered = array_filter($all_objects, function($object) use($lookup) {
  return ($object->id === $lookup);
});

现在$filtered只有一个(大概)对象,公共财产“id”有973

注意:正如@timurib和@federkun都指出的那样,这不是过滤数组的最快方法。在所有其他条件相同的情况下,做一个简单的预言,faster。但是你要刮几毫秒,可以说使用array_*函数可以使代码更清晰。