在PHP中获取数组的最后一个元素而不改变数组?[duplicate]

de90aj5v  于 2023-02-28  发布在  PHP
关注(0)|答案(6)|浏览(150)
    • 此问题在此处已有答案**:

(33个答案)
昨天关门了。
array_pop()将其从数组中移除。end()更改内部指针。
是唯一的办法真的有些cludge喜欢:

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

4xy9mtcn

4xy9mtcn1#

这是可行的:

list($end) = array_slice($array, -1);

array_slice($array, -1)返回仅包含最后一个元素的数组,list()将slice结果的第一个元素赋给$end
@Alin Purcaru在评论中建议了这一条:

$end = current(array_slice($array, -1));

从PHP 5.4开始,这也适用:

array_slice($array, -1)[0]
v2g6jxz6

v2g6jxz62#

嗯......使用end()之后,reset() ting会怎么样?

$lastItem = end($myArr);
reset($myArr);
u4vypkhs

u4vypkhs3#

可惜

list($end) = array_slice($array, -1);

不适用于关联数组。所以我使用

function pop_array_nondestructive( $array )
    {
    return end($array);
    }
v8wbuo2f

v8wbuo2f4#

<?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];
}
?>
p1iqtdky

p1iqtdky5#

1.获取最后一个密钥:
$最后一个键=最后一个数组键($my_array);//获取给定数组的最后一个键,而不影响内部数组指针。
1.获取最后一个元素:
回显$我的数组[$最后一个键];

tag5nh1u

tag5nh1u6#

end($my_array);

我觉得改变内部指针没什么不好,反正现在也没人用了

相关问题