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文檔

相關文章
相關標籤/搜索