php中array_unique 和 json_encode 同时使用的问题
<?php
$a=[1,2,3,4,5,6];
// var_dump($a);
$b=array_unique($a);
// var_dump($b);
var_dump(json_encode($b));
$c=[1,2,3,4,5,5,6];
// var_dump($c);
$d=array_unique($c);
// var_dump($d);
var_dump(json_encode($d));
array_unique.php:7:string
'[1,2,3,4,5,6]' (length=13)
array_unique.php:13:string
'{"0":1,"1":2,"2":3,"3":4,"4":5,"6":6}' (length=37)
经过去重的数组 json_encode 会认为 实际是一个对象
原因是因为,去重复之后的数组中的索引并不是连续的,这样encode的时候它认为这样的key是键值对的存在,所以encode之后是一个对象
使用 array_values 可以兼容处理
json_encode(array_values($d));
可参考PHP文档 http://php.net/manual/zh/function.json-encode.php