PHP的JSON中索引陣列和關聯陣列
阿新 • • 發佈:2018-11-27
索引陣列和關聯陣列
PHP支援兩種陣列,一種是隻儲存"值"(value)的索引陣列(indexed array),另一種是儲存"名值對"(name/value)的關聯陣列(associative array)。
由於javascript不支援關聯陣列,所以json_encode()只將索引陣列(indexed array)轉為陣列格式,而將關聯陣列(associative array)轉為物件格式。
比如,現在有一個索引陣列
[php] view plain copy
$arr = Array('one','two', 'three'
echo json_encode($arr);
輸出
[php] view plain copy
["one","two","three"]
如果將它改為關聯陣列:
[php] view plain copy
$arr = Array('1'=>'one','2'=>'two','3'=>'three');
echo json_encode($arr);
輸出變為
[php] view plain copy
{"1":"one","2":"two","3":"three"}
注意,資料格式從"[]"(陣列)變成了"{}"(物件)。
如果你需要將"索引陣列"強制轉化成"物件",可以這樣寫
[php] view plain copy
json_encode( (object)$arr);
或者
[php] view plain copy
json_encode ( $arr, JSON_FORCE_OBJECT );