php中array_unique 和 json_encode 同时使用的问题

<?phpphp

$a=[1,2,3,4,5,6];
// var_dump($a);
$b=array_unique($a);
// var_dump($b);
var_dump(json_encode($b));json

$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:stringspa

 '[1,2,3,4,5,6]' (length=13)

array_unique.php:13:string.net

 '{"0":1,"1":2,"2":3,"3":4,"4":5,"6":6}' (length=37)

通过去重的数组 json_encode 会认为 实际是一个对象 debug

缘由是由于,去重复以后的数组中的索引并非连续的,这样encode的时候它认为这样的key是键值对的存在,因此encode以后是一个对象code

 

使用 array_values 能够兼容处理对象

json_encode(array_values($d));索引

 

可参考PHP文档  http://php.net/manual/zh/function.json-encode.php文档

相关文章
相关标签/搜索