[英]How to combine sql query with a php array?
我一直在试图解决这个问题,但我一个人做不到
所以我有这个SQL查询:
SELECT * FROM stats WHERE date >= '2014-03-01' and date <= '2014-03-07'
+-----------------------------+
+ date | visits +
+-----------------------------+
+ 2014-03-02 | 832 +
+ 2014-03-03 | 746 +
+ 2014-03-06 | 49 +
+-----------------------------+
我想将其与php数组结合起来,以便得到以下输出:
$array = array(
"2014-03-01" => 0,
"2014-03-02" => 832,
"2014-03-03" => 746,
"2014-03-04" => 0,
"2014-03-05" => 0,
"2014-03-06" => 49,
"2014-03-07" => 0,
);
有谁知道如何做到这一点? 非常感谢您的帮助
首先创建一个数组:
$array1 = array(
"2014-03-01" => 0,
"2014-03-02" => 0,
"2014-03-03" => 0,
"2014-03-04" => 0,
"2014-03-05" => 0,
"2014-03-06" => 0,
"2014-03-07" => 0,
);
然后从db获取数组:
$array2 = array(
"2014-03-02" => 832,
"2014-03-03" => 746,
"2014-03-06" => 49,
);
最后得到的结果是:
$result = array_merge($array1, $array2);
(我知道它已经回答了)
(对我而言)最困难的部分是获取(@xdazz的)array1。
我在http://www.rarst.net/script/php-date-range/找到了
$datearray1 = dateRange('2014/03/01', '2014/03/07');
$datearray1 = array_fill_keys($datearray1, 0);
$datearray2 = array('2014-03-02' => 832, '2014-03-03' => 746, '2014-03-06' => 49);
$datearray3 = array_replace($datearray1, $datearray2);
// http://www.rarst.net/script/php-date-range/
function dateRange($first, $last, $step = '+1 day', $format = 'Y-m-d' ) {
$dates = array();
$current = strtotime( $first );
$last = strtotime( $last );
while( $current <= $last ) {
$dates[] = date( $format, $current );
$current = strtotime( $step, $current ); }
return $dates;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.