数组过滤后的重新排序问题

今天遇到了一个问题,分析解决后觉得可以记下来提醒自己;

很多时候从数据库中直接取出来的是数组,例如 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);

posted @ 2016-05-27 23:22  白尼玛砸缸  阅读(501)  评论(0)    收藏  举报