【问题标题】:PHP retrieve array of items from a multidimensional array without looping?PHP从多维数组中检索项目数组而不循环?
【发布时间】:2011-12-27 03:28:27
【问题描述】:
我有一大堆数组,每个子数组都有一个 ID 和一些其他信息。有没有办法在不使用循环的情况下访问仅包含 ID 的数组?
有点像
$array[ALLOFTHEITEMS][Id];
我想最终将这些 ID 与另一个平面 ID 数组进行比较。
我通常会做一个 for 循环,然后将每个项目的 id 添加到一个新数组中,然后比较它们。但是有更快的方法吗?
【问题讨论】:
标签:
php
arrays
loops
multidimensional-array
for-loop
【解决方案1】:
不确定它是否比 foreach 更快,因为我从未对其进行基准测试,但 foreach 的替代方案是:
php 5.3
$ids = array_map(function($data) { return $data['id']; }, $array);
php
function reduceToIds($data) {
return $data['id'];
}
$ids = array_map('reduceToIds', $array);
我通常自己使用 foreach 方法。