PHP - JSON解析 - 添加和删除对象

时间:2016-10-12 15:46:56

标签: php arrays json

我从服务器获取[{"2016":"200"},{"2017":"200"}]这个JSON字符串,我想附加另一个对象,即。 {"2018":"324"}位于现有JSON数组的末尾,并且希望在第0个索引处删除现有JSON数组的对象,以便可以获得我想要的结果 [{"2017":"200"}{"2018":"324"}] 。 这就是我正在做的事情

        $str = json_decode($x1,TRUE);                    //x1 is my JSON
        array_push($str, array("2018"=>"324"));     //adding another object
        unset($str[0]);                             //removing 0th index
        $s = json_encode($str,TRUE);                    //making JSON again
        echo $s;                

此处的问题是$s{"1":{"2017":"200"},"2":{"2018":"35"}}之类的对象形式提供输出。所需内容为[{"2017":"200"}{"2018":"324"}]

1 个答案:

答案 0 :(得分:0)

我可能会建议使用array_shift()更好的方法:

$json = json_decode($x1, TRUE);   // decoding

array_shift($json);               // removing first element

$json[] = [ "2018" => "324" ];    // adding last element

$str = json_encode($json);        // encoding

echo $str; 

正如其他人已经指出的那样,你得到的对象是等价的,因为你的数组不是从0索引开始的,所以它是用数字键在javascript对象中转换的。我使用array_shift()删除第一个元素。它还将重置数组中的索引。如果在将其他元素添加到数组之前删除第一个键,它也会(微不足道)更快。