2008-10-19 77 views

回答

7

你也可以這樣做:

$end = end(array_keys($array)); 

但我覺得你的方式清楚你想要做什麼,所以你可能會掀起一些像:

function array_last_key($array) { 
    end($array); 
    return key($array); 
} 

這就是它。

+0

我只想拋出這是我對PHP的最大抱怨。負數組索引絕對是一件好事。 – 2008-10-20 18:08:56

0

在PHP中沒有特殊的功能,所以我認爲你的做法是最有效的方法。爲了便於閱讀,您可能需要將其放入一個名爲array_last_key()的函數中。

0

如果你能保證你的陣列將不會有任何非數字鍵和你是不會被刪除任何鍵,那麼最後一個元素添加到您的陣列的關鍵將是

$last_added = count($array)-1; 

如果您確實需要跟蹤最新添加的密鑰,您可能想要制定一個計劃來提供您自己的密鑰,這些密鑰必須是唯一的。這樣,您將自始至終擁有最新添加的密鑰,因爲您已生成密鑰。

$array = array('test1', 'test2', 'test3', 'test4', 'test5'); 
// do a bunch of other stuff, probably a loop 
$new_key = generate_key(); 
$array[$new_key] = 'test6'; 
echo $new_key; // gives me blahblahfoobar123 
0

簡單地說,沒有。兩端和鍵都是Big O(1)時間。任何其他方式都會降低代碼速度並增加複雜性。

+0

「大O(1)時間」是什麼意思? – 2008-10-20 18:08:25

相關問題