1. 程式人生 > >php索引陣列和關聯陣列

php索引陣列和關聯陣列

最近遇到個bug,記錄一下

//定義一個數組
$arr = Array('a','b','c','d');

//轉為json字串
$str1 = json_encode($arr);

//去掉一項
unset($arr[1]);

//轉json
$str2 = json_encode($arr);

var_dump($str1);
echo '<br/>';
var_dump($str2);
string(17) "["a","b","c","d"]" 
string(25) "{"0":"a","2":"c","3":"d"}" 
列印結果顯示,一個是陣列,一個是物件。

顯然第一個是索引陣列,第二個是關聯陣列。索引陣列轉json是陣列,關聯陣列轉json是物件。

直接使用unset()刪除陣列元素,會把索引陣列轉為關聯陣列

刪除元素,保持索引的方法:

unset($arr[1]);
array_values($arr);
array_splice($array, 1, 1);