最近遇到乙個業務邏輯:俺小時查詢某段時間的訂單發貨量,db裡邊是按照小時來存的資料,如:
從資料庫裡查出來以後,並將資料處理成此種格式:
array
( [xx1配送中心] => array
([2013-04-01 11:00:00] => 2
[2013-04-01 12:00:00] => 710
[2013-04-01 13:00:00] => 35
[2013-04-01 14:00:00] => 501
[2013-04-01 15:00:00] => 851
[2013-04-01 16:00:00] => 678
[2013-04-01 17:00:00] => 693
[2013-04-01 18:00:00] => 929
[2013-04-01 19:00:00] => 31
)[xx2配送中心] => array
([2013-04-01 11:00:00] => 890
[2013-04-01 12:00:00] => 1002
[2013-04-01 13:00:00] => 46
[2013-04-01 14:00:00] => 1
[2013-04-01 15:00:00] => 382
[2013-04-01 16:00:00] => 154
[2013-04-01 17:00:00] => 314
[2013-04-01 18:00:00] => 255
[2013-04-01 19:00:00] => 1
)[xx3配送中心] => array
([2013-04-01 13:00:00] => 726
[2013-04-01 14:00:00] => 737
[2013-04-01 15:00:00] => 686
[2013-04-01 16:00:00] => 660
[2013-04-01 17:00:00] => 604
[2013-04-01 18:00:00] => 103
[2013-04-01 19:00:00] => 13
)[xx4配送中心] => array
([2013-04-01 14:00:00] => 74
[2013-04-01 15:00:00] => 289
[2013-04-01 16:00:00] => 242
[2013-04-01 17:00:00] => 211
[2013-04-01 18:00:00] => 228
[2013-04-01 19:00:00] => 99))
查詢出來的資料要求按照圖表顯示,但是每個時間點都要顯示,資料庫裡邊沒有的時間要填充為0。
最後聽廣哥建議,用下面的方法實現。
$starttime=date('y-m-d h:00:00', strtotime($stime));
$arr=array();//先建立所有時間點值都為0的乙個陣列
$temp=0;
for($i=$starttime; strtotime($i)$value)
此處附array_merge()的方法說明:
array array_merge ( array array1 [, array array2 [, array ...]] )
array_merge() 將乙個或多個陣列的單元合併起來,乙個陣列中的值附加在前乙個陣列的後面。返回作為結果的陣列。
如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆蓋前乙個值。然而,如果陣列包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了乙個陣列並且該陣列是數字索引的,則鍵名會以連續方式重新索引。
按周,按月,按日,按小時分組統計資料
url 遇到了,總結,僅僅是個搬運工!來自陶偉基wiki select date format create time,y u weeks,count caseid count from tc case group by weeks select date format create time,y ...
按周,按月,按日,按小時分組統計資料
url 遇到了,總結,僅僅是個搬運工!來自陶偉基wiki select date format create time,y u weeks,count caseid count from tc case group by weeks select date format create time,y ...
mysql按周統計資料
主要就是使用date format這個方法 select date format createtime,y u weeks,count count from user group by weeks order by weeks desc u 周 00 53 星期日是一周的第一天 u 周 00 53 ...