我对提供JSON响应的PHP代码没什么问题。让我举个例子来说清楚。 假设我们在数据库中有以下表格:
| firstname | lastname | age |
+===========+==========+=====+
| Nick | James | 21 |
+-----------+----------+-----+
| John | Manson | 23 |
+-----------+----------+-----+
在我的PHP代码中,列名存储在数组$ col_fields中。列数存储在变量$ num_fields中。 Array $ row存储数据库表的每一行,因此row [0]是firstname,row [1]是lastname,row [2]是age。我还使用辅助数组$ row_aux来存储对:“key”=> “值”。因此,在我们的示例中,对将是以下内容:
第1行:“firstname”=> “尼克”,“姓氏”=> “詹姆斯”,“年龄”=> “21”
第2行:“firstname”=> “约翰”,“姓氏”=> “曼森”,“年龄”=> “23”
我在等待作为JSON响应的内容如下所述:
{“table_name”:[{“firstname”:“Nick”,“lastname”:“James”,“age”:21},{“firstname”:“John”,“lastname”:“Manson”, “年龄”:23}]}
但我在这里描述的是:
{“table_name”:[{“firstname”: [“Nick”] ,“lastname”: [“James”< strong>] ,“年龄”: [“21”] },{“firstname”: [“John”< strong>] ,“姓氏”: [“Manson”] ,“年龄”: [“23” ] }]}
我使用的代码是:
while ($i < $num_fields) {
$row_aux[$col_fields[$i]][] = $row[$i];
$i++;
}
echo json_encode($row_aux);
有谁能告诉我如何解决它?
答案 0 :(得分:2)
您是否尝试从代码中删除最后一组括号?看起来像创建一个数组,你推动一个单一的值:
while ($i < $num_fields) {
$row_aux[$col_fields[$i]] = $row[$i];
$i++;
}
echo json_encode($row_aux);
答案 1 :(得分:0)
$row_aux[$col_fields[$i]][] = $row[$i];
^^---append to array
由于$i
每次递增,因此您在每次迭代时都会创建一个全新的单项数组。如果那只是持有一个值,那就撕掉[]
:
$row_aux[$col_fields[$i]] = $row[$i];
^---just assign the value, no extra array