我是PHP的新手,我学习的时间不到3天,我被困,我来自#C背景。下面是我的行的结果。
while($row = mysqli_fetch_assoc($rowult)) {
echo json_encode($row);
}
//result of echo json_encode($row);
{"id":"1","name":"john","blood_type_id":"1","value": 213,"blood_name":"dog"}{"id":"1","name":"john","blood_type_id":"2","value": 888,"blood_name":"bat"}
建立像这样的json的最佳方式是什么?
[{
"id":1,
"name":"john",
"blood":[{blood_type_id: 1},{value:213},{blood_name:"dog"},
{blood_type_id: 2},{value:888},{blood_name:"bat"}]
}]
答案 0 :(得分:2)
您需要创建一个数组并首先分配每个数据,然后最后对其进行编码: -
如下所示: -
$final_array = [];// create an array
while($row = mysqli_fetch_assoc($rowult)) {
$final_array[$row['name']]['id'] = $row['id']; // use name as key so that same name records will come inside single-array
$final_array[$row['name']]['name'] = $row['name']; // assign values to array
$final_array[$row['name']]['blood'][] = [['blood_type_id'=>$row['blood_type_id']],['value'=>$row['value']],['blood_name'=>$row['blood_name']]]; // since you need `blood` as an array so create a key blood an assign values to them like an array
}
$final_array = array_values($final_array); // now remove name indexes
echo json_encode($final_array); // final encoded data
硬编码示例示例输出: - https://eval.in/928775