还给JSON阵列与子阵列
我的表如下所示:还给JSON阵列与子阵列
id | title | link | kind
------------------------
1 link1 http one
4 link2 http two
2 link9 http one
我想给回一个JSON阵列(!JSON解析是没问题的),它看起来像:
one
- link1, http
- link9, http
two
- link2, http
种族是动态所以我不知道实际的字符串。 (但是,这是从来没有(空)!)
我有什么:
$links = array();
while($row = mysql_fetch_object($result)) {
$link = array(
'title' => $row->title,
'link' => $row->link,
'kind' => $row->kind
);
$links[] = $link;
}
echo json_encode($links);
这是一个数组,每个元素的所有列。
使用$ row-> kind作为*数组的索引。
$kinds = array('one' => 1, 'two' => 2, ...etc...);
$links = array();
while($row = mysql_fetch_object($result)) {
$link = array(
'title' => $row->title,
'link' => $row->link
);
$links[$kinds[$row->kind]][] = $link;
}
echo json_encode($links);
追加到一个空值是好的,并会创建一个新的数组,至少直到PHP 5.3(不知道约5.4)。它甚至不会用'E_ALL'发出警告。 编辑:我认为这是一个预期的功能,因为它简化了很多代码。 – 2012-08-08 09:52:33
好的,这个工程...但我想还是有一个错误。 iPhone崩溃。我需要的结构:数组 - >数组 - >字典 – DAS 2012-08-08 09:55:46
你不能有一个外键字典的字符串'一','二'等等。你是否要将字面数转换为整数? – 2012-08-08 09:56:33
可以在MySQL查询做到这一点:
SELECT CONCAT("[",
GROUP_CONCAT(
CONCAT("{".kind.":'",title ,"'"),
CONCAT(",".kind.":'",link),"'}")
)
,"]") AS json
FROM table_name;
如果标题有引号,会发生什么情况? – K2xL 2013-12-20 20:28:10
这是个问题?我不明白你需要什么 – 2012-08-08 09:45:30