#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.