如果数组中出现空值,则将零添加到数组

时间:2019-05-20 15:03:07

标签: php mysql arrays

这是按日期为每个产品组选择总和(金额)后得到的数组。 当日期没有对应的金额时,它显示为空。我需要将其显示为零。

Array
(
    [2019-05-16] => Array
        (
            [0] => 499
        )

    [2019-05-17] => Array
        (
            [0] => 1998
        )

    [2019-05-18] => Array
        (
            [0] => 195
        )

    [2019-05-19] => Array
        (
            [0] => 1194
            [1] => 999
        )

)

但是输出应该是这样,

有什么办法可以将空值设为0


Array
(
    [2019-05-16] => Array
        (
            [0] => 499
            [1] => 0

        )

    [2019-05-17] => Array
        (
            [0] => 1998
           [1] => 0
        )

    [2019-05-18] => Array
        (
            [0] => 195
            [1] => 0
        )

    [2019-05-19] => Array
        (
            [0] => 1194
            [1] => 999
        )

)

这是脚本


foreach ($productid as $itemid) {

  $query1 = "select date, SUM(amount) as amount from app_product_details where  date between '2019-05-14 00:00:00' and '2019-05-20 23:59:59' and appid = $itemid group by date";

        $getquery1 = mysqli_query($conn,$query1);
        while($getcount1 = mysqli_fetch_assoc($getquery1))
        {

          $grset1[] = $getcount1;

        }
      }

 foreach($grset1 as $r){
$dates1[$r['date']][] = $r['amount'];

}

请帮助我到达输出。

1 个答案:

答案 0 :(得分:1)

您可以更改查询,而不是尝试破解您的数组,以便当当天没有任何给定产品出售时返回0值。这应该起作用:

$query1 = "SELECT date, SUM(CASE WHEN appid = $itemid THEN amount ELSE 0 END) AS amount 
           FROM app_product_details
           WHERE date BETWEEN '2019-05-14 00:00:00' AND '2019-05-20 23:59:59' 
           GROUP BY date";