在for循环中嵌套json对象

时间:2013-03-15 22:48:37

标签: php javascript jquery json

我有一个for循环,它返回一个id和用户拥有的所有图像的名称。

 $from1 = 1;
 $from2 = 10;

 for ($i=$from1; $i < $from2; $i++) {
     if (($i % 5) == 0) 
     $idTemp = $id1[$i];

     echo $idTemp;
     echo $name[$i];
 }

我希望将它放入json响应中,而不是回显数据,如下所示:

"images":[
    "1":{"id":"1234","name":"thisisaname"},
    "2":{"id":"4332","name":"namename"}
]

但我似乎无法弄清楚如何在循环中创建json数组。另外,我将如何循环解码json?

有人可以帮忙吗? 提前为任何帮助干杯,杰米

1 个答案:

答案 0 :(得分:4)

在服务器端(PHP)打印json响应,首先创建具有相同结构的php数组,然后用json_encode对其进行编码:

$from1 = 1;
$from2 = 10;

$json = array('images' => array());
for ($i=$from1; $i < $from2; $i++) {
    if (($i % 5) == 0) {
        $json['images'][$i] = array(
            'id' => $id1[$i],
            'name' => $name[$i]
        );
     }
}

echo json_encode($json);

在客户端(JS),您将收到一个data对象:

$.getJSON(url, function(data) {
    for (x in data.images) {
        data.images[x].id;
        data.images[x].name;
    }
}