array_pop()将它从数组中移除。 end()更改内部指针。在不改变PHP中的数组的情况下获取数组的最后一个元素?
是唯一的途径还真有些像cludge:
$my_array[array_pop(array_keys($my_array))];
?
array_pop()将它从数组中移除。 end()更改内部指针。在不改变PHP中的数组的情况下获取数组的最后一个元素?
是唯一的途径还真有些像cludge:
$my_array[array_pop(array_keys($my_array))];
?
这工作:
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]
'$ end = current(array_slice($ array,-1));'而不是'list'获取数组唯一元素的方法? –
是的,很好的:)在答案中加入 – arnaud576875
很感谢。我希望有一些功能或方法我没有找到。 – Joren
呃......关于reset()
ting您使用end()
后什么?
$lastItem = end($myArr);
reset($myArr);
因为它改变了内部指针和OP似乎不想改变内部指针? :) – arnaud576875
@arnaud我知道它重置指针,但至少它把它放在默认的开始处。您的解决方案将更适合不重置它。 –
end($my_array);
我什么也看不到改变内部指针坏。没有人这些天使用也无妨
再次以讽刺的方式回答问题。你应该真的停止这一点。 –
你知道这是最快的枪支问题,哈哈。即使在通过 –
@Alin阅读后,我仍然没有看到问题的重点,这里有什么问题。虽然在比赛后期,这是一个有效的答案,并且这是一个未被充分利用的功能。 –
不幸的是
list($end) = array_slice($array, -1);
不通过关联数组。所以我用
function pop_array_nondestructive($array)
{
return end($array);
}
<?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];
}
?>
为了公平起见,有什么在* *到底是任意的基础上你的钥匙。 –