array_pop()
函数从数组中删除最后一个元素。 end()
函数改变内部指针。
难道唯一的方法就是像这样使用“cludge”吗:
$my_array[array_pop(array_keys($my_array))];
?
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]
$end = current(array_slice($array, -1));
的方法如何?相较于使用 list
方法,你认为哪个更好? - Alin Purcaru当你使用 end()
后,再使用 reset()
呢?
$lastItem = end($myArr);
reset($myArr);
不幸的是
list($end) = array_slice($array, -1);
不支持关联数组。所以我使用
function pop_array_nondestructive( $array )
{
return end($array);
}
$last_key = array_key_last($my_array); //Get the last key of the given array without affecting the internal array pointer.
echo $my_array[$last_key];
<?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);
我认为更改内部指针并无大碍。反正现在也没有人使用它。
end()
。 - Jason McCrearycurrent(array_slice($array, -1))
更为出色,因为当传递非变量参数时(*current(array_slice(get_array(), -1))
*),你不会遇到严格标准问题。 - Dan Lugg