Получить последний элемент массива без изменения массива в PHP?

array_pop () удаляет его из массива. end () изменяет внутренний указатель.

Единственный способ, на самом деле, какой-то cludge:

$my_array[array_pop(array_keys($my_array))]; 

?

Solutions Collecting From Web of "Получить последний элемент массива без изменения массива в PHP?"

Это работает:

 list($end) = array_slice($array, -1); 

array_slice($array, -1) возвращает массив только с последним элементом, а list() присваивает первому элементу результата среза значение $end .

@Alin Purcaru предложил это в комментариях:

 $end = current(array_slice($array, -1)); 

Начиная с PHP 5.4, это тоже работает:

 array_slice($array, -1)[0] 

Erm … как насчет reset() ting после использования end() ?

 $lastItem = end($myArr); reset($myArr); 

К сожалению

 list($end) = array_slice($array, -1); 

не работает с ассоциативными массивами. Поэтому я использую

 function pop_array_nondestructive( $array ) { return end($array); } 
 <?php /** * Return last element from array without removing that element from array. * https://github.com/jdbevan/PHP-Scripts/ * * @param array $array The array to get the last element from * @return mixed False if $array is not an array or an empty array, else the key of the last element of the array. */ function array_peek($array) { if (!is_array($array)) return false; if (count($array)<1) return false; $last_key = array_pop(array_keys($array)); return $array[$last_key]; } ?> 
 end($my_array); 

Я не вижу ничего плохого в изменении внутреннего указателя. В наши дни никто не использует его