2011-11-25 66 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 
    } 
}