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


Add " and create own json array in php

我是我的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"] 这样的常规数组,这些元素的键已经隐式012。无需将它们强制作为对象键。