我有一个名为date_field[]
的html文本框元素数组。表单中可能有多个字段。在提交表单以检查至少有一个文本框是否为空之后,我使用了 -
<?php
if(empty($_POST["date_field"])){
echo "Is empty";
}else{
echo "is not empty";
}
?>
无论我是填写还是填写is not empty
,它都会回复date_field
。
P.S。如果我使用print_r
如果我没有放价值
[followup_date] => Array
(
[0] =>
)
如果我放价值
[followup_date] => Array
(
[0] => 2012-12--14
)
任何帮助都将受到高度赞赏
答案 0 :(得分:4)
您的“空”数组包含空字符串:
array(0 => '')
那不是空数组。唯一的“空”数组是array()
。
您可能希望通过array_filter
运行它,这会删除评估为false
的所有元素(也包括"0"
,请注意)。
答案 1 :(得分:2)
数组不为空,因为每个非禁用的表单字段将包含一个元素(即使这些字段为空)。
您可以使用@deceze提到的array_filter函数,但请记住,这也会删除一些人不会认为是空的元素。
因此,我宁愿自己运行数组,检查所有元素是否都是空的。例如:
function all_is_empty(array $subject)
{
foreach($subject as $value)
if(str_len($value) > 0)
return false;
return true;
}
用法:
if(all_is_empty($_POST["date_field"]))
{
echo "Is empty";
}
else
{
echo "is not empty";
}
如果这是我,我可能还会将此与检查所有字段都有效。因此,如果您知道该数组中的所有字段都应该是日期,请检查它们实际上是:)