PHP извлекает массив элементов из многомерного массива без зацикливания?

#php #arrays #loops #multidimensional-array #for-loop

#php #массивы #циклы #многомерный массив #for-цикл

Вопрос:

У меня есть большой массив массивов, и каждый из этих подмассивов имеет идентификатор и некоторую другую информацию. Есть ли способ получить доступ к массиву, состоящему только из идентификаторов, без использования цикла?

Вроде как

 $array[ALLOFTHEITEMS][Id]; 
  

Я хочу в конечном итоге сравнить эти идентификаторы с другим плоским массивом идентификаторов.
Обычно я бы выполнил цикл for, а затем просто добавил идентификатор каждого элемента в новый массив, а затем сравнил их. Но есть ли более быстрый способ?

Ответ №1:

Не уверен, что это быстрее, чем foreach, поскольку я никогда не сравнивал его, но альтернативой foreach было бы:

php 5.3

 $ids = array_map(function($data) { return $data['id']; }, $array);
  

php < 5.3

 function reduceToIds($data) {
    return $data['id'];
}

$ids = array_map('reduceToIds', $array);
  

Хотя обычно я сам использую подход foreach.