当我们利用PHP的索引数组(key是0,1,2,3,......),同时对数组进行unset操作的时候,PHP会将数组转化为关联数组。当我们利用json_encode的时候,会导致数据构造不一致。我们可以利用array_values函数办理这个问题。
array array_values ( array $array )
array_values() 返回 input 数组中所有的值并给其建立数字索引。
看看这个大略的例子:
<?php
$arr = [\"大众apple\"大众, \"大众paer\公众, \"大众banana\"大众, \"大众cat\公众, \公众lichi\公众, \公众orange\"大众];
echo json_encode($arr), PHP_EOL;
foreach ($arr as $k => $v) {
if ($v == 'cat') {
unset($arr[$k]);
}
}
echo json_encode($arr), PHP_EOL;
$arr = array_values($arr);
echo json_encode($arr), PHP_EOL;
结果输出,明显,经由array_values处理后的结果才是我们想要的结果:
[\"大众apple\"大众,\"大众paer\公众,\"大众banana\公众,\"大众cat\公众,\"大众lichi\"大众,\"大众orange\"大众]
{\"大众0\"大众:\"大众apple\"大众,\公众1\公众:\"大众paer\"大众,\公众2\"大众:\公众banana\"大众,\"大众4\公众:\"大众lichi\"大众,\公众5\"大众:\"大众orange\"大众}
[\"大众apple\"大众,\公众paer\公众,\"大众banana\"大众,\"大众lichi\"大众,\"大众orange\"大众]
---------------------
作者:loophome
来源:CSDN
原文:https://blog.csdn.net/loophome/article/details/77771071
版权声明:本文为博主原创文章,转载请附上博文链接!