嵌套的JSON数组

时间:2013-10-28 16:04:12

标签: php arrays json

我需要为JSON提供以下结构。

预期的JSON:

[
[count:5,applied:{key:value},{key:value},{key:value},{key:value},{key:value}],
[count:2,notapplied:{key:value},{key:value}]
]

以下是我的代码:

$json = array(); 
$json[]=array("Count"=>5);
while($mydata=mysql_fetch_array($myquery))
{
   $json[]=array("key" => $mydata[0]);
}
json_encode($json);

上面的代码只是创建了以下JSON结构, 我需要为JSON提供以下结构。

[{count:5},{key:value},{key:value},{key:value},{key:value},{key:value}]

关于如何实现预期的JSON的任何指示?感谢您的帮助。

EDITED: 我写了以下代码:

$json = array(); 
  $json[]=array("Count"=>5);
while($mydata=mysql_fetch_array($myquery))
    {
     $json['applied'][]=array("key" => $mydata[0]);   
    }
  $json[]=array("Count"=>2);
while($mydata1=mysql_fetch_array($myquery1))
    {
     $json['not applied'][]=array("key" => $mydata[0]);   
    }

但是上面的代码并没有创建未应用的部分:(对我出错的地方有任何帮助。

1 个答案:

答案 0 :(得分:0)

您需要将key:value对包装在另一个数组中。

将其更改为:

$json = array(); 
$json[]=array("Count"=>5);
$applied = true;
while($mydata=mysql_fetch_array($myquery))
{
   $json[($applied ? 'applied' : 'notapplied')][]=array("key" => $mydata[0]);
}
json_encode($json);