0

私のテーブルは次のようになります。

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

kind-column は動的なので、実際の文字列はわかりません。(しかし、決して (null) ではありません!)

私が持っているもの:

$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);

これは、各要素のすべての列を持つ 1 つの配列です。

4

2 に答える 2

0

これは MySQL クエリで実行できます。

SELECT CONCAT("[",
          GROUP_CONCAT(
               CONCAT("{".kind.":'",title ,"'"),
               CONCAT(",".kind.":'",link),"'}")
          )
     ,"]") AS json
FROM table_name;
于 2012-08-08T09:45:36.563 に答える
0

最上位配列へのインデックスとして $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);
于 2012-08-08T09:44:21.367 に答える