php - 格式化数组中的mysql数据

标签 php mysql json

我正在从我的数据库中提取数据并尝试使用 json_encode 将数据编码为 JSON 数据。但为了让我的 android 应用程序更容易阅读。我希望以与目前不同的方式格式化它。请参阅底部编码字符串示例。任何帮助都会很棒。提前致谢。

$result = $db->query($query);

        while($info = mysql_fetch_array($result))
            {
            $content[] = $info;
            }

$count = count($content);

$result=array();

for($i=0;$i<$count;$i++)
{
    $result[id][] = $content[$i]['imageID'];
    $result[name][] = $content[$i]['Name'];
    $result[thumb][] = $content[$i]['Thumb'];
    $result[path][] = $content[$i]['Path'];
}

echo json_encode($result);

{"id":["1","2","3"],"name":["Dragon","fly","bug"],"thumb":["thm_polaroid.jpg","thm_default.jpg","thm_enhanced-buzz-9667-1270841394-4.jpg"],"path":["polaroid.jpg","default.jpg","enhanced-buzz-9667-1270841394-4.jpg"]}

但是当我的数组由 json_encode 编码时,我正在尝试像这样格式化我的数组。

[{"id":"1","name":"Dragon","thumb":"thm_polaroid.jpg","path":"polaroid.jpg"},{"id":"2","name":"Fly","thumb":"thm_default.jpg","path":"default.jpg"},{"id":"3","name":"Bug","thumb":"thm_enhanced-buzz-9667-1270841394-4.jpg","path":"enhanced-buzz-9667-1270841394-4.jpg"}]

最佳答案

嗯,有一个问题。这不是有效的 JSON:

{"image":["1","Dragon","thm_polaroid.jpg","polaroid.jpg"],
 "image":["2","fly","thm_default.jpg","default.jpg"]}

一个 JSON 对象的每个唯一键只能有一个值。这意味着你的后一个图像键会破坏前一个的值。

但是,如果您对此感到满意:

[["1","Dragon","thm_polaroid.jpg","polaroid.jpg"],
 ["2","fly","thm_default.jpg","default.jpg"]]

然后你可以简单地使用 mysql_fetch_row:

 $result = $db->query($query);

 while($info = mysql_fetch_row($result))
 {
     $content[] = $info;
 }

 echo json_encode($content);

边注:

一般来说,在PHP中,最好使用foreach( $arr as $val ) (或者$arr as $key => $val)。 for 循环应该限制在绝对必要的时候。

关于php - 格式化数组中的mysql数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825553/

相关文章:

php - 在 PHP 中的对象上使用 json_encode(无论范围如何)

php - 如何根据链接表输出 rowName?

php - SQLSTATE[23000] : Integrity constraint violation: 1062 Duplicate entry '0430142821' for key 'users_melli_unique'

php - 更改TD的背景颜色

MYSQL INSERT 或 UPDATE IF

php - mysql 出现死锁和锁定超时问题

php - 在一个查询中在 MySQL 中执行插入/更新的最佳方法是什么?

mysql - 查询以查找 cakephp 中关联模型(有很多)为空的位置

android - Jackson - 无法序列化数组,UnknownLengthHttpInputStream

java - 从 Android 的 JSON 对象返回与其 ID 对应的名称