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 , 这样业务逻辑就容易错了。以后注意这细节。