PHP数组验证

PHP数组验证,php,arrays,if-statement,Php,Arrays,If Statement,我有一个在提交时得到验证的表单。我确保一些字段不是空的,日期字段有有效的格式,等等。我有一个复选框块,旁边有一个文本输入 Option 1 <input type="checkbox" name="jobBonusId[]" value="1" /> Option 2 <input type="checkbox" name="jobBonusId[]" value="2" /> Option 3 <input type="checkbox" name="jobB

我有一个在提交时得到验证的表单。我确保一些字段不是空的,日期字段有有效的格式,等等。我有一个复选框块,旁边有一个文本输入

Option 1
<input type="checkbox" name="jobBonusId[]" value="1"  />
Option 2
<input type="checkbox" name="jobBonusId[]" value="2"  />
Option 3
<input type="checkbox" name="jobBonusId[]" value="3"  />

Amount 1
<input type="number" name="jobBonusAmount[]" step="0.01" value="0.00" />
Amount 2
<input type="number" name="jobBonusAmount[]" step="0.01" value="0.00" />
Amount 3
<input type="number" name="jobBonusAmount[]" step="0.01" value="0.00" />
有什么办法可以做到吗


多谢各位

您可以使用数组键,并通过
jobBonusId
键检查子项:

foreach ($jobBonusId as $key => $bonusId) {
    if (!empty($bonusId)) {
        if (!empty($jobBonusAmount[$key])) { // check a child
            // if child is filled
        } else {
            // not filled
        }
    }
}

这意味着,
$jobBonusId
数组与
$jobBonusAmount
数组相同。如果在前端创建关联数组,通过隐藏字段发送该数组,并对每个
jobBonusId
验证
jobBonusAmount
,这将更容易。我已经尝试过了,但是如果(!empty($jobBonusId)&&is_数组($jobBonusId)),则不知道如何退出父else。Look://Start errors count$err=0;//循环trhu数组值foreach($jobBonusId as$id=>$val){//验证奖金金额if($jobBonusAmount[$id]=='0.00'){//添加计数$err++;}//验证发现的错误if(!empty($err)){//显示表单$displayContent=$displayForm;}@CarloCharles如果其中一个cild已填充,请使用
break
。您还可以在foreach之前设置标志(变量),如果至少有一个filled-set标志为true
foreach ($jobBonusId as $key => $bonusId) {
    if (!empty($bonusId)) {
        if (!empty($jobBonusAmount[$key])) { // check a child
            // if child is filled
        } else {
            // not filled
        }
    }
}