我正在从表单中添加一个项目数组,如果它们全部为空,我想执行一些验证并将其添加到错误字符串中。
$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>';
array_filter()
已经被@dogmatic69提到过了。关于性能 - 我相信简单的foreach
应该比array_filter()
和implode()
都要快。 - binaryLVif(implode($array)) echo '..'
即使数组元素之一为(string)"0"
,也会打印出'..'。关于foreach
比array_filter()
慢的说法 - 你确定吗?逐个删除数组元素怎么会比仅仅读取数组元素更快呢? - binaryLVarray_filter()
仅检查是否填充任何值至少比基本的foreach
循环慢几倍,而使用布尔变量存储结果并在第一个无效值上使用break
的基本foreach
循环要更快一些。即使array_filter()
是一个“本地PHP函数”,它也不能真正比foreach
更快,因为它必须创建新的数组变量。 - binaryLVrequestID=0
和status=0
,当明显有值时会出现“请输入一个值”的结果。 - Toskan