Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中,将值推送到json中的数组中_Php_Arrays_Json - Fatal编程技术网

在PHP中,将值推送到json中的数组中

在PHP中,将值推送到json中的数组中,php,arrays,json,Php,Arrays,Json,我有一个类似于{1:[3,5,6,2,4,1],2:[]}的json,我想在数组中的键2中推送一个值,所以我想这样做{1:[3,5,6,2,4,1],2:[myvalue]}。 我试过很多方法,但都不走运。 这就是我试过的 /// json = {"1":["3","5","6","2","4","1"],"2":[]}

我有一个类似于{1:[3,5,6,2,4,1],2:[]}的json,我想在数组中的键2中推送一个值,所以我想这样做{1:[3,5,6,2,4,1],2:[myvalue]}。 我试过很多方法,但都不走运。 这就是我试过的

      /// json = {"1":["3","5","6","2","4","1"],"2":[]}
        $arrayparole= $json["2"];
        array_push($arrayparole,"myvalue");

        $json = $json + array("2"=>$arrayparole); 
          $record = json_encode($json);  
但是不起作用。
你能帮我吗?

你的JSON基本上是一个字符串。因此,您不能像以前那样使用索引访问JSON。 您需要做的是首先将JSON字符串转换为数组。拥有数组后,只有您能够使用索引/键访问值。 只能将值推入数组

不能像以前那样将数组附加到字符串

$json = $json + array("2"=>$arrayparole); 
下面是将字符串转换为数组并使用array_push插入新值的示例

$jsonstring='{1:[3,5,6,2,4,1],2:[]}'; //将JSON字符串解码为数组 $array=json_decode$jsonstring,true; //一旦你有了数组,你现在可以推送你的值了 array\u push$array[2],myvalue; //现在可以将数组转换回json echo json_encode$数组;
这回答了你的问题吗@如果这个答案有帮助,请将其标记为答案谢谢Afif。今天下午我会检查一下,如果可以的话,我会把它标记为答案。愚蠢的问题只是为了理解:为什么你说它是一个字符串?