unset数组元素后 重新排列索引 并转为json格式
把一个索引数组内的某个元素删除后直接转成json输出,数据格式不正确。
那就需要在转成json之前把删除后的数组处理一下,因为前端只支持连续的索引数组
其实方法有很多种,例如
重新定义一个空数组,循环旧数组,把数据添加到新数组里foreach ($infos as $key => $value) { $infos[$key] = array_values($value); }
或是用array_splice($infos,0,1);
说实话。这两种方法都试过了 都不对 可能是我写错了 不过我用最简便的一种方法解决了
代码如下:
$arr = array(array(
1
,
23
),array(
1
,
23
),array(
1
,
23
));
var_dump($arr);
print_r(json_encode($arr));
foreach($arr as $k=>$v)
{
//符合条件的数据销毁
if
($k ==
1
)
{
unset($arr[$k]);
}
}
var_dump($arr);
print_r(json_encode($arr));die;
返回的json数据格式如下:

可以看到数组格式在unset后发生变化 解决方法很简单 仅一行代码就可以解决
在foreach后 增加
$arr = array_values($arr);
问题就完美解决了