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

当前回答

要做到这一点,避免E_STRICT,并且不混乱数组的内部指针,你可以使用:

function lelement($array) {return end($array);}

$last_element = lelement($array);

Lelement只适用于副本,所以它不会影响数组的指针。

其他回答

如果你想让数组的最后一个元素在它的数组的循环中呢?

下面的代码将导致一个无限循环:

foreach ($array as $item) {
 $last_element = end($array);
 reset($array);
 if ($last_element == $item) {
   // something useful here
 }
}

对于非关联数组,解决方案显然很简单:

$last_element = $array[sizeof ($array) - 1];
foreach ($array as $key => $item) {
 if ($last_element == $item) {
   // something useful here
 }
}

通过使用下面的逻辑,您可以轻松地从数组中获取最后一个元素

$array = array('a', 'b', 'c', 'd');
echo ($array[count($array)-1]);

使用下面的逻辑,不仅可以得到最后一个元素,还可以得到第二个最后一个元素,第三个最后一个元素等等。

对于倒数第二个元素,你必须在上面的语句中只传递数字2,例如: 回声($阵列[count(数组)美元2]);

这个怎么样?

Eg-

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

注意:For (PHP 7 >= 7.3.0) 我们可以用 array_key_last -获取数组的最后一个键

array_key_last ( array $array ) : mixed

裁判:http://php.net/manual/en/function.array-key-last.php

简单地:$last_element = end((array_values($array)))

不重置数组,也不给出严格警告。

PS.由于投票最多的答案仍然没有双括号,所以我提交了这个答案。