繁体   English   中英

如何将SQL查询与PHP数组结合?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM