Ok,

我知道所有关于array_pop(),但它删除了最后一个元素。如何获得数组的最后一个元素而不删除它?

这里有一个奖励:

$array = array('a' => 'a', 'b' => 'b', 'c' => 'c');

甚至

$array = array('a', 'b', 'c', 'd');
unset($array[2]);
echo $array[sizeof($array) - 1]; // Output: PHP Notice:  Undefined offset:  2 in - on line 4

当前回答

array_slice($array, -1)有什么问题?(参见手册:http://us1.php.net/array_slice)

Array_slice()返回一个数组。可能不是你想要的。你想要元素。

其他回答

这个怎么样?

Eg-

$arr = [1,2,3];
$lastElem = count($arr) ? $arr[count($arr) - 1] : null;

array_slice($array, -1)有什么问题?(参见手册:http://us1.php.net/array_slice)

Array_slice()返回一个数组。可能不是你想要的。你想要元素。

Array_values (array_reverse($array))[0]适用于所有这些情况。

从Array中获取最后一个值:

array_slice($arr,-1,1) ;

删除数组的最后一个值:

array_slice($arr,0,count($arr)-1) ;

测试: 这样不行吗?

<?php
$last_element=end(array_values($array));
?>

由于array_values返回的数组是稍纵即逝的,所以没有人关心它的指针是否被重置。

如果你需要钥匙的话,我猜你会这样做:

<?php
$last_key=end(array_keys($array));
?>