Php 多个JSON根元素| JSON编码

Php 多个JSON根元素| JSON编码,php,arrays,json,Php,Arrays,Json,我正在创建一个数组,其中包含多个包含在for循环中的参数,如下所示: for ($x = 1; $x <= 2; $x++) { $jsonarray=array( 'id' => $x, 'title' => $title, 'url' => $url, ); echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);

我正在创建一个数组,其中包含多个包含在for循环中的参数,如下所示:

for ($x = 1; $x <= 2; $x++) {

        $jsonarray=array(

        'id' => $x, 
        'title' => $title,
        'url' => $url,

    );

        echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);

    }
{  
   "id":1,
   "title":"Test Title",
   "url":"http://test.com/"
}{  
   "id":2,
   "title":"Test Title 2",
   "url":"http://test2.com",
}

上面的JSON输出不是一个有效的JSON,因为它需要是一个数组[]分隔的对象。如何实现这一点?

在循环后对数组进行编码,并在数组中添加值,例如

for ($x = 1; $x <= 2; $x++) {

    $jsonarray[] = array(
                     'id' => $x, 
                     'title' => $title,
                     'url' => $url,
                   );
}

echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);

您应该先构建完整的数组,然后再尝试将其转换为JSON字符串。不是像您现在这样,单独输出每个事件

那么就这样做吧

$jsonarray = array();

for ($x = 1; $x <= 2; $x++) {
    $jsonarray[] = array( 'id' => $x, 
                          'title' => $title,
                          'url' => $url);

}
echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);

改为创建一个数组

for ($x = 1; $x <= 2; $x++) {

$jsonarray[] = array(
                 'id' => $x, 
                 'title' => $title,
                 'url' => $url,
               );
}

echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);