フォームからアイテムの配列を追加していますが、それらがすべて空の場合、検証を実行してエラー文字列に追加します。ので、私は持っています:
$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 を使用できます
コールバックが提供されない場合、FALSE(ブールへの変換を参照)に等しい入力のすべてのエントリが削除されます。
これを簡単な1行で実行できます。
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>';
}
空の接着剤で配列を分解し、結果の文字列のサイズを確認します。
<?php if (strlen(implode($array)) == 0) echo 'all values of $array are empty'; ?>
古い質問ですが、上記にリストされていないため、ソリューションにポップすると思いました。
function isArrayEmpty($array) {
foreach($array as $key => $val) {
if ($val !== '')
return false;
}
return true;
}
あなたは本当にそれを必要としません。
これらのフィールドを個別に検証し、このプロセスを完了することにより、配列が空であったか(または無効な値が含まれているか、同じであるか)わかります。
この方法の使用を簡素化します。
$array = []; //target array
$is_empty = true; //flag
foreach ($array as $key => $value) {
if ($value != '')
$is_empty = false;
}
if ($is_empty)
echo 'array is empty!';
else
echo 'array is not empty!';
$ arrayの定義が正しくなく、一重引用符が含まれています。次のようになります。
$array = array( 'RequestID' => $_POST["RequestID"],
'ClientName' => $_POST["ClientName"],
'Username' => $_POST["Username"],
'RequestAssignee' => $_POST["RequestAssignee"],
'Status' => $_POST["Status"],
'Priority' => $_POST["Priority"] );