今天在写写代码的时候,前端找我,说我写的一个接口有可能有问题。导致前端的数据不能正常显示,我去看了一下,确实不能正常显示。问题的原因是本来前端循环遍历一个json里的数组,但是接下来的数据变成对象了。好,接下来上代码。

$arr = [
    0=>'a',
    1=>'b',
    2=>'c',
    3=>'d',
];
$add = [
    5=>'e',
    6=>'f',
    7=>'g',
];
$list = [];
// 业务方面需要将数据追加进去
array_push($list, $arr);
array_push($list, $add);

echo '<pre>'; print_r($list);

  代码没什么特别的,结果没有意外,当然是个二维数组,结果:

  但是,我需要返回的是json格式的数据,代码:

$arr = [
    0=>'a',
    1=>'b',
    2=>'c',
    3=>'d',
];
$add = [
    5=>'e',
    6=>'f',
    7=>'g',
];
$list = [];
// 业务方面需要将数据追加进去
array_push($list, $arr);
array_push($list, $add);
echo '<pre>';
// print_r($list);
var_dump(json_encode($list));

  打印结果:

  结果是,第二个数组变成了对象。最后发现最终的原因,是第二个数组的下标,不是从0开始的,才会导致第二个数组在转为json时,会变成对象。最后修改了第二组数据的下标,结果也都变成了正常的数组。

posted on 2019-07-05 21:36  stars523  阅读(174)  评论(0编辑  收藏  举报