确定NULL值数组是否为空

时间:2012-06-04 17:17:39

标签: php

我正在构建一个数组来确定是否需要采取措施。我正在执行一个查询。该表有一个sent_date字段,用于确定是否已将电子邮件发送给用户。将消息发送给用户后,sent_date字段将填充getdate()。以下是我的建设方式:

$sent_date_sql = "
    select ind_id, sent_date from profileemail
";

$results = dbExec($sent_date_sql);

然后我构建我的数组:

foreach ($results as $r){
    array_push($sent_date,$r['sent_date']);
    $query_count = count($results);
}

这一切都是光荣的。我的问题是当我去检查sent_date数组时。此脚本在该月份中第一次运行,所有sent_date值均为NULL。所以我的数组看起来像:

array(228) {
  [0]=>
  NULL
  [1]=>
  NULL
  [2]=>
  NULL
  [3]=>
  NULL
  [4]=>
  NULL

...等

现在我将尝试评估$sent_date

if(empty($sent_date)){

我的empty条件永远不会命中,因为数组的值都是NULL。有没有其他方法可以实现我想要做的事情?我应该循环遍历$sent_date数组并评估每个值吗?

2 个答案:

答案 0 :(得分:1)

if (!array_filter($sent_date))

array_filter删除数组中的所有“空”元素。如果数组中的所有元素都是“空”,则结果是没有元素的数组(array())。空数组的计算结果为false

答案 1 :(得分:0)

您可以采用两种方式进行跟进。

  1. 正如第一个回答中所述,您可以使用array_filter。它排除了数组中的所有负,空,空值。

  2. 修改您的查询,这样您就不需要在php中工作了。

    $sent_date_sql = "select ind_id, sent_date from profileemail where sent_date != NULL or sent_Date != '' ";
    
    $results = dbExec($sent_date_sql);