array_pop()将其从数组中删除。 end()改变内部指针。
唯一的方法是真的有些像cludge:
$my_array[array_pop(array_keys($my_array))];
答案 0 :(得分:22)
这有效:
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]
答案 1 :(得分:2)
呃...使用end()
之后reset()
ting呢?
$lastItem = end($myArr);
reset($myArr);
答案 2 :(得分:1)
不幸的是
list($end) = array_slice($array, -1);
不适用于关联数组。所以我用
function pop_array_nondestructive( $array )
{
return end($array);
}
答案 3 :(得分:0)
<?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];
}
?>
答案 4 :(得分:-5)
end($my_array);
我发现改变内部指针没什么不好。这些天无论如何都没有人使用它