Ответ 1
Нет, нет более быстрого способа, чем ваш реализованный код. Все остальные методы будут медленнее из-за накладных расходов на вызов функции. Для небольшого массива разница будет тривиальной, но для большой (100 членов или около того, в зависимости от реализации) разница может быть огромной...
Вы могли бы array_map
его, но я бы придерживался необработанного PHP, который вы разместили выше... Это легче поддерживать и IMHO более читабельным...
В конце концов, скажите мне, какой с первого взгляда сообщает, что он делает больше:
$results = array();
foreach ($array as $value) {
$results[] = $value['title'];
}
vs
$results = array_map(function($element) {
return $element['title'];
},
$array
);
Или:
$callback = function($element) {
return $element['title'];
}
$results = array_map($callback, $array);
Лично, первый делает это для меня лучшим. Это сразу становится очевидным, не зная ничего, что он делает. Другие требуют знания семантики array_map
для понимания. Пара, что с тем, что array_map
медленнее, и это двойной выигрыш для foreach
.
Код должен быть только таким элегантным, насколько необходимо. Это должно быть читаемо, прежде всего...