我是我的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));
OUTPUT:[“0:3”,“1:15”,“2:3”,“3:14”,“4:1”,“5:2”,“6:2”] < / p>
但是我需要像这样的输出[“0”:“3”,“1”:“15”,“2”:“3”,“3”:“14”,“4”:“1” , “5”:2" , “6”: “2”]
当我要添加“mark
时 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”]
如何避免打印此\符号?
答案 0 :(得分:1)
我假设你想要一个像这样的JSON 对象:
{"0":"3", ... }
这里的问题是Javascript / JSON区分键对值(对象)和数字索引列表(数组),而PHP使用数组来表示这两种情况。对于json_encode
,它取决于PHP数组是否是连续数字索引的数组,在这种情况下,您将获得JSON数组或其他任何内容,在这种情况下,您将获得一个JSON对象。 / p>
你想要的是强制一个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
。没有必要将它们强制为对象键。