我有一个像这样打印的数组
Array ( [0] => 1691864 [1] => 7944458 [2] => 9274078 [3] => 1062072 [4] => 8625335 [5] => 8255371 [6] => 5476104 [7] => 6145446 [8] => 7525604 [9] => 5947143 )
如果我json_encode($thearray)得到这样的东西
json_encode($thearray)
[1691864,7944458,9274078,1062072,8625335,8255371,5476104,6145446,7525604,5947143]
为什么名称未编码(例如0、1、2、3等)?以及如何使它出现在json代码中?完整的代码如下
$ie = 0; while($ie 10) { $genid = rand(1000000,9999999); $temp[$ie] = $genid ; $ie++; } print_r($temp); $temp_json = json_encode($temp); print_r($temp_json);
您可以json_encode通过设置 JSON_FORCE_OBJECT 选项来强制使用对象,尽管您要通过数字键传递数组:
json_encode
json_encode($thearray, JSON_FORCE_OBJECT)
然后,返回的值将是带有数字键的JSON对象:
{"0":1691864,"1":7944458,"2":9274078,"3":1062072,"4":8625335,"5":8255371,"6":5476104,"7":6145446,"8":7525604,"9":5947143}
但是,只有在确实需要对象时才应该这样做。