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];
}
?>
爲了公平起見,有什麼在* *到底是任意的基礎上你的鑰匙。 –