添加“并在php中创建自己的json数组

时间:2013-10-07 10:07:35

标签: php json

我是我的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”]

如何避免打印此\符号?

1 个答案:

答案 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"]之类的常规数组,则这些元素的键已隐式012。没有必要将它们强制为对象键。