2016-01-05 40 views
0

我建立與封閉在一個for循環數PARAMATERS按照以下的數組:多個JSON根元素| JSON編碼

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

     $jsonarray=array(

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

    ); 

     echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES); 

    } 

上面的代碼將創建5個陣列,並將它們編碼成一個JSON按以下:

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

上面的JSON輸出不是有效的JSON,因爲它需要是需要用數組[]分隔的對象。我怎樣才能做到這一點?

回答

0

在循環之後對數組進行編碼並將值添加到數組中,例如,

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

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

echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES); 
0

您應該在嘗試將其轉換爲JSON字符串之前構建完整的數組。不像你在做什麼,單獨輸出每個事件。

所以做這樣的

$jsonarray = array(); 

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

} 
echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES); 
-1

創建一個數組,而不是

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

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

echo json_encode($jsonarray, JSON_UNESCAPED_SLASHES);