php unset()多维数组时,会导致json_encode()输出为对象。解决方案:采用array_values()或者sort()重新建立索引。
示例:
$arr = [
['a'=>'a1'],
['b'=>'b1'],
['c'=>'c1'],
['d'=>'d1'],
];
var_dump($arr);
echo "正常索引进行json_encode:";
echo json_encode($arr);
echo "
";
$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 "
";
$arr2 = array_values($arr2);
var_dump($arr2);
echo "array_values()后进行json_encode:";
echo json_encode($arr2);
执行结果如图:
喜欢 (1)or分享 (0)