我想將SQL資料以json格式列出在網頁上
$data = array();
$user = new User();
$user->id = "1";
$user->Md5 = "c0bd5ed152744e2c8218f2fb2bc8ead6";
$data[]=$user;
$user = new User();
$user->id = "2";
$user->Md5 = "c0bd5ed152744e2c8218f2fb2bc8ead6";
$data[]=$user;
echo json_encode($data,JSON_UNESCAPED_UNICODE);
這樣是成功的
[
{
"id": "1",
"Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6"
},
{
"id": "2",
"Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6"
}
]
但我其中有個數值會有好幾個資料 希望列出來像這樣
[
{
"id": "1",
"Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6",
"Type": [
"A",
"B"
]
},
{
"id": "2",
"Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6",
"Type": [
"X",
"Y",
"Z"
]
}
]
請問Type部分要怎麼寫呢?
我本來想寫討論。
但我還是想寫回答。
因為比較明顯表達我想說的話。
PHP的語言開發者做錯的一件事……
就是把Array和Hash Table混在一起用。
["A", "B", "C", "D"]
上面這個叫做Array
["name": "Sam", "address": "Taipei"]
上面這個叫做Hash Table,亦或稱之為Dictionary(像字典般有key value可查詢)
在一般JSON標準表示Array:
["A", "B", "C", "D"]
或
[1, 2, 3, 4, 5]
在一般JSON標準表示Hash Table(Dictionary)
{"name": "Sam", "address": "Taipei"}
總之,純粹只是PHP這個語言比較混蛋
而已……不好好分,全都叫Array(明明Hash Table就不是)
試試
<?php
$arrType1 = array('A'=>'','B'=>'');
$arr1 = array ('id'=>1,'Md5'=>'c0bd5ed152744e2c8218f2fb2bc8ead6','Type'=>$arrType1);
$arrType2 = array('X'=>'','Y'=>'','Z'=>'');
$arr2 = array ('id'=>1,'md5'=>'c0bd5ed152744e2c8218f2fb2bc8ead6','Type'=>$arrType2);
$arr = array($arr1, $arr2);
echo json_encode($arr);
?>