首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP输出格式

问PHP输出格式
EN

Stack Overflow用户
提问于 2014-11-22 18:59:28
回答 2查看 581关注 0票数 1

我正在尝试用json格式输出我的数据库信息。诀窍是团队A/团队B是数据库中的一个值。

数据库是这样的:

代码语言:javascript
复制
Team   timezome   time     fulldate
teamA   MST      8:30 PM    10-30-2014
teamA   CST      8:30 PM    10-30-2014

我需要它像这样格式化。

代码语言:javascript
复制
{
teamA: {
    timezone: "MST",
    time: "8:30 PM",
    fullDate: "10-30-2014"
},
teamB: {
    timezone: "CST",
    time: "8:30 PM",
    fullDate: "10-30-2014"
}

}

我可以连接到所有的东西,得到基本的json输出,我只是不能像我想要的那样对它进行格式化。

谢谢你的帮助。

基思

我现在使用的格式

代码语言:javascript
复制
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

    $row_array['team'] = $row['team'];
    $row_array['date'] = $row['date'];
    $row_array['time'] = $row['time'];

    //push the values in the array
    array_push($json_response,$row_array);
}
echo json_encode($json_response);

而且它在输出

代码语言:javascript
复制
[
{
    team: "teamA",
    date: "11-29-14",
    time: "9:30"
},
{
    team: "teamB",
    date: "11-29-14",
    time: "9:30"
}

]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-22 19:12:58

可能最简单的方法是迭代结果集,将Team的值指定为返回数组的索引,例如下面的示例中的$ret。将该行分配给我们刚刚创建的索引,然后从从Team数组的结果构建的内部数组中取消设置$row。

代码语言:javascript
复制
$mysqli = new mysqli('host', 'user', 'pass', 'db');

$stmt = $mysqli->query('select * from my_table');

$ret = array();
while($row = $stmt->fetch_all(MYSQLI_ASSOC)):
    $ret[$row['Team']] = $row;
    unset($ret[$row['Team']]['Team']);
endwhile;

echo json_encode($ret);

这将产生所需的输出。

票数 0
EN

Stack Overflow用户

发布于 2014-11-22 19:14:36

代码语言:javascript
复制
$sql = "select * from tblname";
$res = mysql_query($sql);
While ($temp = mysql_fetch_assoc($res)) {
  $arr [$res ['Team']] ['timezone'] = $res['timezone'];
  // do it for other two fields
}

注意:不推荐使用mysql_。此代码仅用于解释和示例用途。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27081240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档