2015-10-27 29 views
1

我想格式化的json看起來是這樣的:如何格式化一個json文件,該文件將從php發回給javascript?

"items": [{ 
     "item1": "text" 
     'item2': "text", 
     'item3': "text", 
     'item4': number, 
     'item5': number, 
     'item6': "text", 
     'item7': "text" 
     }, 
     "item1": "text" 
     'item2': "text", 
     'item3': "text", 
     'item4': number, 
     'item5': number, 
     'item6': "text", 
     'item7': "text" 
}] etc... 

的問題是,我只能找出如何有我編碼爲索引的數組,這會導致成一個關聯數組的數組。

我試過代碼顯然在一個循環如下得到多行:

$final_return['items'] = array 
    (
     'item1' => $item1, 
     'item2' => $item2, 
     'item3' => $item3, 
     'item4' => $item4, 
     'item5' => $item5, 
     'item6' => $item6, 
     'item7' => $item7 
    ); 
echo json_encode($final_return); 

但這僅返回最後一組扔到陣列項目。我已經使用索引版本工作,但我希望整個集合前面的項目標籤。

回答

0

當你在做$ final_return [「項目」] =陣列(...)要指定在$ final_return陣列的關鍵「項目」的新價值。

你想要什麼是$ final_return [「項目」] [] =陣列(....)然後再次推向一個新的數組到該數組。

+0

最後我用的是以此爲基礎的解決方案不同的實現。感謝您的評論。出於某種原因,我無法想象如何以一種很好的方式將陣列組合在一起。 – FGF

0

你需要一個數組內部的數組來實現它。

試試這個:

$final_return['items'] = array(
    array 
    (
     'item1' => '1', 
     'item2' => '2', 
     'item3' => '3', 
     'item4' => '4', 
     'item5' => '5', 
     'item6' => '6', 
     'item7' => '7' 
    ), 
    array 
    (
     'item1' => '1', 
     'item2' => '2', 
     'item3' => '3', 
     'item4' => '4', 
     'item5' => '5', 
     'item6' => '6', 
     'item7' => '7' 
    ) 
); 
echo json_encode($final_return); 

您可以使用array_push()到多個陣列到陣列

$data = array 
    (
     'item1' => '1', 
     'item2' => '2', 
     'item3' => '3', 
     'item4' => '4', 
     'item5' => '5', 
     'item6' => '6', 
     'item7' => '7' 
    ); 
$final_return['items'] = array(); 

array_push($final_return['items'], $data, $data); 
echo json_encode($final_return); 
相關問題