我是我的php文件,我需要制作自己的Json数组。
for($i=1;$i<$arraySize+1;$i++){
$idJson[$i]=$i.":".$birdIDArray[$i-1];
}
for($i=$arraySize+1 ;$i<$arraySize*2+1; $i++){
$idJson[$i]=$i.":".$rankArray[$i-($arraySize+1)];
}
当我使用
打印(json_encode($idJson));
输出 : ["0:3","1:15","2:3","3:14","4:1","5:2","6:2"]
但是我需要这样的输出 ["0":"3","1":"15","2":"3","3":"14","4":"1","5":2","6":"2"]
当我要添加" 标记
for($i=1;$i<$arraySize+1;$i++){
$idJson[$i]=$i.'"'.":".'"'.$birdIDArray[$i-1];
}
for($i=$arraySize+1 ;$i<$arraySize*2+1; $i++){
$idJson[$i]=$i.'"'.":".'"'.$rankArray[$i-($arraySize+1)];
}
它像这样打印["0
:3","1''":''"15","2''":''"3","3''":''"14","4''":''"1","5''":''"2","6''":''"2"]如何避免打印此 '' 符号?
我假设你想要一个这样的JSON对象:
{"0":"3", ... }
这里的问题是Javascript/JSON区分了键值对(对象)和数字索引列表(数组),而PHP则使用数组来处理这两件事。对于json_encode
,这取决于PHP数组是否是一个连续的数字索引数组,在这种情况下,你会得到一个JSON数组,或者其他任何东西,在这种情况下,你会得到一个JSON对象。
你想要的是强制使用 JSON 对象,即使对于连续的数字索引数组也是如此。这里的第一个问题是:为什么?!但是如果你真的确定你想要这个(再次,为什么?!),PHP 5.3+ 中有 JSON_FORCE_OBJECT
标志:
echo json_encode(array("3", "15", "3"), JSON_FORCE_OBJECT);
// {"0":"3","1":"15","2":"3"}
但我要再说一遍,这毫无意义。如果你使用像 ["3","15","3"]
这样的常规数组,这些元素的键已经隐式0
、1
和2
。无需将它们强制作为对象键。