php unset()多维数组时,会导致json_encode()输出为对象。解决方案:采用array_values()或者sort()重新建立索引。
示例:
<?php $arr = [ ['a'=>'a1'], ['b'=>'b1'], ['c'=>'c1'], ['d'=>'d1'], ]; var_dump($arr); echo "正常索引进行json_encode:"; echo json_encode($arr); echo "<hr/>"; $arr2 = [ ['a'=>'a1'], ['b'=>'b1'], ['c'=>'c1'], ['d'=>'d1'], ]; unset($arr2[2]);//unset()一条数组后,导致json_encode()输出对象 var_dump($arr2); echo "unset()数据后,索引混乱进行json_encode:"; echo json_encode($arr2); echo "<hr/>"; $arr2 = array_values($arr2); var_dump($arr2); echo "array_values()后进行json_encode:"; echo json_encode($arr2);
执行结果如图: