获取数组的最后一个元素而不更改PHP中的数组?

时间:2011-09-20 19:38:27

标签: php arrays

array_pop()将其从数组中删除。 end()改变内部指针。

唯一的方法是真的有些像cludge:

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

5 个答案:

答案 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);

我发现改变内部指针没什么不好。这些天无论如何都没有人使用它