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条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么