我的数组是:
$response = [
0 => [
'id' => 'US',
'text' => 'United States'
],
1 => [
'id' => 'CA',
'text' => 'Canada'
],
2 => [
'id' => 'FR',
'text' => 'France'
],
...
]
当我对其执行
json_encode
时,由于某种原因,数组中的 id
值为 0:
{"id":0,"text":"United States"},
{"id":0,"text":"Canada"},
{"id":0,"text":"France"}
仅当列名称为
id
时才会发生这种情况,就像 json_encode
强制 ID 为数字一样。
知道如何在
id
列中使用字符串吗?
所有
'id' => 'XX'
行后面都需要逗号。添加这些并运行 json_encode 之后,它对我来说工作得很好,id 都保留了它们的字符串值。
尝试:
$response = [
0 => [
'id' => 'US',
'text' => 'United States'
],
1 => [
'id' => 'CA',
'text' => 'Canada',
],
2 => [
'id' => 'FR',
'text' => 'France'
]
];
var_dump(json_encode($response, 20));
结果:
{
"0": {"id": "US", "text": "United States"},
"1": {"id": "CA", "text": "Canada"},
"2": {"id": "FR", "text": "France"}
}