Новые методы массивов в PHP 8.5: array_first()
и array_last()
array_first()
и array_last()
в PHP 8.5: синтаксис, примеры использования и сравнение с reset()
и end()
. Узнайте, как упростить работу с массивами.Сегодня, если необходимо эффективно получить первый или последний элемент массива в PHP, можно воспользоваться функциями reset()
и end()
соответственно.
Вот как это можно сделать.
$array = [1, 2, 3, 4, 5];
$first = reset($array); // 1
$last = end($array); // 5
Конечно, это хорошо, но у этого способа есть и недостатки. Например, и reset()
, и end()
влияют на внутренний указатель массива, перемещая его на первый и последний элемент массива. Так что если собираетесь делать что-то ещё с массивом после итерации, это необходимо иметь в виду.
Также можно использовать функции PHP array_key_first()
и array_key_last()
для получения первого и последнего ключа массива, например, так.
$array = [1, 2, 3, 4, 5];
$firstKey = $array[array_key_first($array)]; // 0
$lastKey = $array[array_key_last($array)]; // 4
Но это не интуитивно и делает код более трудным для понимания.
Итак, как следует из названия, в PHP 8.5 появятся две новые функции array_first()
и array_last()
, упрощающие получение первого и последнего элементов массива, не затрагивающие внутренний указатель и не использующие ключи.
$array = [1, 2, 3, 4, 5];
$first = array_first($array); // 1
$last = array_last($array); // 5
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$first = array_first($array); // 1
$last = array_last($array); // 3
Для пустых массивов обе функции возвращают null
вместо того, выбрасывания ошибки.
$first = array_first([]); // null
$last = array_last([]); // null
И это всё! Хотя RFC этих функций всё ещё находится на стадии голосования, ожидается, что он будет принят и включён в PHP 8.5, поскольку все голоса были отданы в его пользу.
Подробнее о новых функция массива в PHP 8.5 можно прочитать в статье PHP 8.5: Новые функции array_first
и array_last
.