多维数组json_encode之后产生对象而不是数组问题
Posted 北方的刀郎
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多维数组json_encode之后产生对象而不是数组问题相关的知识,希望对你有一定的参考价值。
json_encode ,对于数字下标不连续下标的数组,会变编译json 对象。连续的下标数组会变异成js数组。这点要注意。不然编译出的数据,前端处理可能会出错。
//unset后,不连续,json_encode会变异成对象,连续的会编译成数组
$arr = array(
0=>array('name'=>'张三','age'=>'120'),
1=>array('name'=>'李四','age'=>'111'),
2=>array('name'=>'王五','age'=>'233')
);
$res = json_encode($arr);
echo "<script>console.log('$res');</script>";
结果:
前端判断 .length 为 3,
$arr = array(
0=>array('name'=>'张三','age'=>'120'),
1=>array('name'=>'李四','age'=>'111'),
2=>array('name'=>'王五','age'=>'233')
);
unset($arr[1]);
$res = json_encode($arr);
echo "<script>console.log('$res');</script>";
结果:
前端判断 .length 为 undefined , 这样业务逻辑就容易错了。以后注意这细节。
以上是关于多维数组json_encode之后产生对象而不是数组问题的主要内容,如果未能解决你的问题,请参考以下文章
PHP json_encode将行作为对象而不是数组返回[重复]
json_encode PHP 数组作为 JSON 数组而不是 JSON 对象