$array = array('a', 'b','c');
unset($array[0]);
var_dump($array);
Yields:
array(1) {
[1]=>
'b'
'c'
}
如何,刪除陣列[0]獲得[ 'BB', 'CC'(無空鍵):如何從數組中刪除鍵和更新索引?
array(1) {
'b'
'c'
}
$array = array('a', 'b','c');
unset($array[0]);
var_dump($array);
Yields:
array(1) {
[1]=>
'b'
'c'
}
如何,刪除陣列[0]獲得[ 'BB', 'CC'(無空鍵):如何從數組中刪除鍵和更新索引?
array(1) {
'b'
'c'
}
檢查:
$array = array('a', 'b','c');
unset($array[0]);
$array = array_values($array); //reindexing
$array = array_splice($array, 0, 1);
看看如果你碰巧正在移除第一個元素(而不是數組中間的任意元素),array_shift()
更合適。
+1,比'未設置/ array_values'組合更好的選擇。 – 2012-07-23 00:15:55
爲什麼這是比unset/array_values更好的選擇?速度? – Bashevis 2014-02-14 03:37:10
@Bashevis:有速度優勢,是的。可以說更重要的是:它更乾淨更清晰。 'array_slice()'旨在完成這件事。毫無疑問,當你看到這個函數調用時會發生什麼。 '未設置(); array_values();'完成相同的事情,但是在兩個單獨的步驟中完成,這迫使讀者計算出後果 - 即找出這是一個執行'array_slice()'的方法。 – VoteyDisciple 2014-02-14 20:04:54
array_values()設定解除後,將工作 – 2012-07-23 00:01:10