2011-11-25 59 views
0

我在格式化我的json時遇到了麻煩。基本上我有這個劇本結構,簡化這個數組(jQuery)json輸出

$array1 = array(); 
for($i = 0; $i < 2 ; $i++) 
{ 
$array1[] = array 
(
    "stocks" => array 
    (
    "0" => "apple" 
    "1" => "banana" 
    "2" => "mango" 
) 
); 
} 

執行時,該輸出(JSON格式):

{ 
    stocks: 
    { 
     0 : apple, 
     1 : banana, 
     2 : mango 
    } 
} 

{ 
    stocks: 
    { 
     0 : apple, 
     1 : banana, 
     2 : mango 
    } 
} 

我的問題是,做什麼樣的變化我必須做出產生這樣的輸出:

{ 
    stocks: 
    { 
     0 : apple, 
     1 : banana, 
     2 : mango 
    }, 

    stocks: 
    { 
     0 : apple, 
     1 : banana, 
     2 : mango 
    } 
} 
+0

所以你想讓兩個物品擁有相同的鑰匙?我不相信這完全有可能。 –

+0

你想實現的是不正確的JSON。 – Tadeck

回答

5

我認爲最簡單的格式將執行下列操作:

$array1 = array(); 
for($i = 0; $i < 2 ; $i++) 
{ 
    $array1['stocks'][] = array 
    (
      "0" => "apple" 
      "1" => "banana" 
      "2" => "mango" 
    ); 
} 

它將顯示等輸出:

{ 
    stocks: [ 
     { 
      0 : apple, 
      1 : banana, 
      2 : mango 
     }, 
     { 
      0 : apple, 
      1 : banana, 
      2 : mango 
     } 
    ] 
} 
1

您的數組密鑰必須是唯一的。如果它們不是,則當前項目的值將在for循環內的每個迭代中被覆蓋。

$arr = array(); 
for ($i = 0; $i < 2 ; $i++) { 
    $arr["stocks{$i}"] = array(
     "0" => "apple" 
     "1" => "banana" 
     "2" => "mango" 
    ); 
} 
1

數組(或對象)中不能有兩個元素具有相同的鍵。如果你想有他們兩個在一個陣列中,你必須單獨的密鑰分配給每個人,像這樣的:

$array1 = array(); 
for($i = 0; $i < 2 ; $i++) 
{ 
    $array1["stocks{$i}"] = array 
    (
     "0" => "apple" 
     "1" => "banana" 
     "2" => "mango" 
    ); 
} 

這將輸出:

{ 
    stocks0: 
    { 
     0 : apple, 
     1 : banana, 
     2 : mango 
    }, 

    stocks1: 
    { 
     0 : apple, 
     1 : banana, 
     2 : mango 
    } 
}