我的代码如下:
for($j=0; $j<=odbc_fetch_row($result); $j++){
$date = odbc_result($result, 'DATE');
$A = odbc_result($result, 'A');
$B = odbc_result($result, 'B');
$C = odbc_result($result, 'C');
$D = odbc_result($result, 'D');
$E= odbc_result($result, 'E');
echo $date." ".$A." ".$B." ".$C." ".$D." ".$E."<br/>";
}
DATE A B C D E 20140101 0 8225.12 0 0 0 20140101 18483.28 0 0 0 0 20140101 0 0 12275.49 0 0 20140101 0 0 0 3013.50 0 20140101 0 0 0 0 4552.20 20140102 0 3612.30 0 0 0 20140102 6850.10 0 0 0 0 20140102 0 0 5695.45 0 0 20140102 0 0 0 3291.80 0 20140102 0 0 0 0 2006.20 20140103 0 2684.10 0 0 0 20140103 13342.26 0 0 0 0 20140103 0 0 6981.14 0 0 20140103 0 0 0 3887.93 0 20140103 0 0 0 0 5117.50
如何按日期对元素进行分组,如下所示?
日期A B C D E
20140101 18483.28 8225.12 12275.49 3013.50 4552.20
20140102 6850.10 3612.30 5695.45 3291.80 2006.20
答案 0 :(得分:1)
尝试
$result = array();
for($j=0; $j<=odbc_fetch_row($result); $j++){
$date = odbc_result($result, 'DATE');
$A = odbc_result($result, 'A');
$B = odbc_result($result, 'B');
$C = odbc_result($result, 'C');
$D = odbc_result($result, 'D');
$E= odbc_result($result, 'E');
$row = array($date,$A,$B,$C,$D,$E);
for($i=0;$i<count($row);$i++){
if($row[$i]>0) {
$result[$date][$i] = $row[$i];
}
}
}
请参阅演示here
答案 1 :(得分:0)
您可以直接在mysql查询中执行此操作,假设您的数据模式对于每一行都是相同的意义,a,b,c,d,e中的任何一列都将具有值并将所有0都设置为
SELECT `date`,
max(`a`) as `a`,
max(`b`) as `b`,
max(`c`) as `c`,
max(`d`) as `d`,
max(`e`) as `e`
FROM `test`
GROUP BY `date`
因此,在执行查询后,您可以按循环获取数据
点击这里