2011-09-20 29 views

回答

21

这工作:

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] 
+4

'$ end = current(array_slice($ array,-1));'而不是'list'获取数组唯一元素的方法? –

+0

是的,很好的:)在答案中加入 – arnaud576875

+0

很感谢。我希望有一些功能或方法我没有找到。 – Joren

2

呃......关于reset()ting您使用end()后什么?

$lastItem = end($myArr); 
reset($myArr); 
+1

因为它改变了内部指针和OP似乎不想改变内部指针? :) – arnaud576875

+0

@arnaud我知道它重置指针,但至少它把它放在默认的开始处。您的解决方案将更适合不重置它。 –

-4
end($my_array); 

我什么也看不到改变内部指针坏。没有人这些天使用也无妨

+6

再次以讽刺的方式回答问题。你应该真的停止这一点。 –

+0

你知道这是最快的枪支问题,哈哈。即使在通过 –

+0

@Alin阅读后,我仍然没有看到问题的重点,这里有什么问题。虽然在比赛后期,这是一个有效的答案,并且这是一个未被充分利用的功能。 –

0

不幸的是

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

不通过关联数组。所以我用

function pop_array_nondestructive($array) 
    { 
    return end($array); 
    } 
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]; 
} 
?> 
相关问题