我們來舉一個例子:
復制代碼 代碼如下:
<?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>
?>