php json_encode id 列为字符串

问题描述 投票:0回答:2

我的数组是:

$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
列中使用字符串吗?

php json php-5.6
2个回答
0
投票

所有

'id' => 'XX'
行后面都需要逗号。添加这些并运行 json_encode 之后,它对我来说工作得很好,id 都保留了它们的字符串值。


0
投票

尝试:

$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"}
}
© www.soinside.com 2019 - 2024. All rights reserved.