dongzi4030 2013-06-28 08:47
浏览 57
已采纳

从MySQL查询填充多维数组

I am trying to create multidimensional array from MySQL query

Query:

    $STH = $DBH->query( "SELECT  value, o_ID, oName, date,  
                         DATE_FORMAT(date, '%d %m %Y') as FDate,
                         DATE_FORMAT(tsTime, '%H:%i') as FTime
                         FROM test tst
                         LEFT JOIN object o
                         ON  tst.o_ID =o.oID
                         WHERE DATE(date) = '$date'
                         ORDER BY FDate, FTime, oName ASC");
    $STH->setFetchMode(PDO::FETCH_ASSOC); 

Loop:

$returnValue = array();
$data = array();

while ( $row = $STH->fetch() ) {

   $returnValue[$row['oName']] = 
       array(
         $data[] = array(
              'time' => $row['FTime'], 'value' => $row['value']
          )
       );
}  

Output:

{"objectA":[{"time":"23:55","value":"15"}],"objectB":[{"time":"23:55","value":"15.90"}],..}

how can I put all values in $data array?

Desired output:

{"objectA":[{"time":"01:00","value":"15"},{"time":"02:00","value":"11"},{"time":"03:00,"value":"16"}],"objectB":[{"time":""01:00","value":"12"},{"time":""02:00","value":"25"},{"time":""03:00","value":"5"}],..}
  • 写回答

2条回答 默认 最新

  • dongtu7205 2013-06-28 09:04
    关注

    Give this a shot:

    $returnValue = array();
    while ( $row = $STH->fetch() )
    {
       if (!$returnValue[$row['oName']])
       {
           $returnValue[$row['oName']] = array();
       }
       $returnValue[$row['oName']][]= array(
              'time' => $row['FTime'], 'value' => $row['value']
          );
    }
    

    That should give you what you want.

    The difference here is that, if the oName-key doesn't exits, I create it, and assign it a new, empty array, then I add a new assiciative array to that array.
    When the oName of row N already has a matching key, I'm not going to reassign that key, but I'm just going to push an extra array to that key.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False