PHP 8.5: New array_first and array_last functions
PHP 8.5 adds two new functions for retrieving the first and last values of an array. These functions complement the array_key_first and array_key_last functions added in PHP 7.3.
array_first: Retrieve the first value from a given array;nullif the array is empty.array_last: Retrieve the last value from a given array;nullif the array is empty.
On
nullvaluesNote that these functions return
nullif the array is empty. However,nullitself can be a valid array value.
array_first
The array_first function returns the first array value of a given array. On a list-arrays, this essentially the key 0 value. However, array_first returns the first value even on associative arrays.
/**
* Returns the first value of a given array.
*
* @param array $array The array to get the first value of.
* @return mixed First value of the array, or null if the array is
* empty. Note that null itself can also be a valid array value.
*/
function array_first(array $array): mixed {}
array_first usage examples
array_first([1, 2, 3]); // 1
array_first([2, 3]); // 2
array_first(['a' => 2, 'b' => 1]); // 2
array_first([null, 2, 3]); // null
array_first([]); // null
array_first([$obj, 2, 3]); // $obj
array_first([1])); // 1
array_first([true]); // true
array_last
array_last function returns the last array value of a given array.
/**
* Returns the first value of a given array. * * @param array $array The array to get the first value of.
* @return mixed First value of the array, or null if the array is
* empty. Note that null itself can also be a valid array value.
*/
function array_last(array $array): mixed {
return empty($array) ? null : $array[array_key_last($array)];
}
array_last usage examples
array_last([1, 2, 3]); // 3
array_last([2, 3]); // 3
array_last(['a' => 2, 'b' => 1]); // 1
array_last([2, 3, null]); // null
array_last([]); // null
array_last([2, 3, $obj]); // $obj
array_last([1])); // 1
array_last([true]); // true
User-land PHP Polyfill
It is possible to trivially polyfill the new two functions using the array_key_first and array_key_last functions added in PHP 7.3.
function array_first(array $array): mixed {
return $array === [] ? null : $array[array_key_first($array)];
}
function array_last(array $array): mixed {
return $array === [] ? null : $array[array_key_last($array)];
}
Alternately, the polyfills/array-first-array-last package provides the polyfills for PHP 7.3 through PHP 8.4.
composer require polyfills/array-first-array-last
Backward Compatibility Impact
Existing PHP applications that declare their own array_first and array_last functions will cause fatal errors due to the attempt to redeclare these functions. These applications either remove their own declarations, rename the functions, or add a namespace.
For other applications, this change does not cause any backward compatibility issues.
Further, it is possible to polyfill these functions.