2011-09-20 54 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]; 
} 
?> 
相關問題