如果我在一个$_POST
语句中使用多个变量,是否可以找到确切的if
变量为空?
这是if
语句的简单示例:
if(empty($_POST['Type']) || empty($_POST['Company']) || empty($_POST['InvoiceNumber']) || empty($_POST['Price']) || empty($_POST['Date']))
{
header("Location: ".HOST."invoice_final.php?ErrorFillInfo=???");
}
现在我需要知道的是,是否有一些简单的解决方案来知道哪些$_POST
变量为空,然后我想用“ ???”替换那些变量。并使用GET方法在下一页上显示确切的字段。
我可以用一种非常复杂的方式做到这一点,即将所有五个$_POST
变量分成单独的if
语句,并在每个header()
语句之后调用if
函数,但是这看起来太复杂了,因此我问是否有更好的方法来检查确切的$_POST
空变量。
答案 0 :(得分:2)
您可以使用array_filter()
和array_diff()
从数组中找到空元素
$non_empty_element = array_filter($_POST);
$empty_element = array_diff($_POST,$non_empty_element);
print_r($empty_element);
基于OP的评论,
我在页面上有10个输入字段,但只有这五个字段($ _POST) 必须填写休息不是必须的。但是然后我会在使用后得到 array_diff也这些在$ empty_element里面...你了解我的吗 点?有什么方法可以只过滤这些重要的$ _POST THX
DEMO2 https://3v4l.org/KvaB8