在某個數組中刪除一個元素,我是直接用的unset,也不管unset之後會發生什麼。但今天看到的東西卻讓我大吃一驚,並不是我想象的那樣,我用示例來說明
我們來舉一個例子: 代碼如下: <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> 我之前想象的是unset之後,數組$arr應該會壓縮數組以填補缺少的元素位置,但print_r($arr)之後,結果卻不是那樣的,最終結果是 Array ( [0] => a [2] => c [3] => d ); 如果是這樣的話,那我們就來看看數字數組的形式 代碼如下: <?php $arr = range(5,10,4); print_r($arr);//<span style="font-family: Simsun;font-size:16px; ">Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 [5] => 10 )</span> unset($arr[1]);//<span style="font-family: Simsun;font-size:16px; ">Array ( [0] => 5 [2] => 7 [3] => 8 [4] => 9 [5] => 10 )</span> print_r($arr); ?> 可以看到輸出的形式也是數組是會填補缺少的元素的位置。那麼怎麼才能做到缺少的元素會被填補並且數組會被重新索引呢?答案是array_splice():<pre name="code" class="php"><?php 代碼如下: $arr = array('a','b','c','d'); array_splice($arr,1,1); print_r($arr); // <span style="font-family: Simsun;font-size:16px; ">Array ( [0] => a [1] => c [2] => d )</span> ?>