最近遇到个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);