Новые методы массивов в 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.

Комментарии


Дополнительные материалы

Предыдущая Статья

Советы по Laravel, которые должен знать каждый разработчик

Следующая Статья

PHP 8.5: Новые возможности и изменения