我正在构建一个数组来确定是否需要采取措施。我正在执行一个查询。该表有一个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
数组并评估每个值吗?
答案 0 :(得分:1)
if (!array_filter($sent_date))
array_filter
删除数组中的所有“空”元素。如果数组中的所有元素都是“空”,则结果是没有元素的数组(array()
)。空数组的计算结果为false
。
答案 1 :(得分:0)
您可以采用两种方式进行跟进。
正如第一个回答中所述,您可以使用array_filter。它排除了数组中的所有负,空,空值。
修改您的查询,这样您就不需要在php中工作了。
$sent_date_sql = "select ind_id, sent_date from profileemail where sent_date != NULL or sent_Date != '' ";
$results = dbExec($sent_date_sql);