我正在检查每个POST的长度是否超过5。
foreach ($_POST as $val) {
if (strlen($val) < 5) {
$go= true;
break;
}
}
如何通过检查5个以上的长度来跳过一个相关POST。
基本上我需要检查所有POST的长度都在5以上,但我希望它忽略检查$_POST['Yes'];
答案 0 :(得分:0)
上述答案实际上并不正确,因为您正在比较该值。 例如,它将在输入中失败:
$_POST = array('Yes'=>'a', 'SomethingElse'=>'a');
这将忽略$ _POST ['SomethingElse'],即使它不应该。
正确解决方案:
要正确找到解决方案,您还应该循环键:
foreach ($_POST as $key=>$val) {
if ($key === 'Yes')
continue;
if (strlen($val) < 5) {
$go= true;
break;
}
}
多个值:
如果要对多个键执行此操作,可以将它们存储在数组中:
$ignores = array('Yes',);
foreach ($_POST as $key=>$val) {
if (in_array($key, $ignores))
continue;
if (strlen($val) < 5) {
$go= true;
break;
}
}
答案 1 :(得分:-1)
您可以使用continue
if($val == $_POST['Yes']) continue;
这将跳过$_POST['Yes']
的计数。
因此,您的代码应该是这样的:
foreach ($_POST as $val) {
if($val == $_POST['Yes']) continue;
if (strlen($val) < 5) {
$go= true;
break;
}
}