检查所有数组项是否为空 PHP

2022-08-30 07:52:53

我正在从窗体中添加一个项数组,如果所有项都是空的,则我想执行一些验证并添加到错误字符串中。所以我有:

$array = array(
    'RequestID'       => $_POST["RequestID"],
    'ClientName'      => $_POST["ClientName"],
    'Username'        => $_POST["Username"],
    'RequestAssignee' => $_POST["RequestAssignee"],
    'Status'          => $_POST["Status"],
    'Priority'        => $_POST["Priority"]
);

然后,如果所有数组元素都是空的,则执行:

$error_str .= '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>';

答案 1

您只能使用内置array_filter

如果未提供回调,则将删除所有等于 FALSE 的输入条目(请参阅转换为布尔值)。

所以可以在一个简单的行中做到这一点。

if(!array_filter($array)) {
    echo '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>';
}

答案 2

用空胶水内爆数组,并检查结果字符串的大小:

<?php if (strlen(implode($array)) == 0) echo 'all values of $array are empty'; ?>

请注意,这是将诸如 或 不为空的值视为一种安全的方法。使用空回调的接受答案将此类值视为空,因为它使用 empty() 函数。许多表单用法必须被视为有效的答案,因此在选择最适合您的方法时要小心。0"0"array_filter0