当我们利用PHP的索引数组(key是0,1,2,3,......),同时对数组进行unset操作的时候,PHP会将数组转化为关联数组。
当我们利用json_encode的时候,会导致数据构造不一致。
我们可以利用array_values函数办理这个问题。

array array_values ( array $array )

array_values() 返回 input 数组中所有的值并给其建立数字索引。

php的unsetPHP索引数组unset的坑arrayvalues解决计划 AJAX

看看这个大略的例子:

<?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

版权声明:本文为博主原创文章,转载请附上博文链接!