今天遇到了一个问题,分析解决后觉得可以记下来提醒自己;
很多时候从数据库中直接取出来的是数组,例如 0=>a,1=>b,2=>c,3=>d这种,然后把数组json_encode返回给前台js,并不会有什么问题。
但当进行数组过滤时,例如把上面的数组中的第二个元素用unset去掉,变成 0=>a,2=>c,3=>d,这个时候把数组json_encode返回给js,js解析后就得不到我们想要的数组,循环就会出错。
因为键值不连续的原因吧,有时间贴一下图,返回的分别大约是这种样式
正确 {[ {},{} ]}
出错 {{ {},{} }} ,得不到数组的格式;
解决方法用sort之类的数组函数处理一下,将数组重新连贯排序,例如
sort($list);
注意而不是 $list = sort($list);