扩展 OOP 验证功能以支持数组

Extend OOP validation function to support arrays

我正在使用以下验证函数来验证我网站上的表单。我想扩展它以便它支持数组。

例如,目前我可能会按以下形式使用它:

<input type="text" name="agency_name">

但我想对其进行调整,以便它可以验证以下格式的字段(发布的数组):

<input type="text" name="agency_name[]">
<input type="text" name="agency_name[]">

我使用的函数是:

public function check($source, $items = array()) {
foreach($items as $item => $rules) {
    foreach($rules as $rule => $rule_value) {
        $value = $source[$item];
        $item = escape($item);

        if($rule === 'required' && empty($value)) {
            $this->addError("{$item} is required");
        } 
        else if (!empty($value)) {
            switch($rule) {
                case 'min':
                    if(strlen($value) < $rule_value) {
                        $this->addError("{$item} must be a minimum of {$rule_value} characters.");
                    }
                break;
                case 'max':
                    if(strlen($value) > $rule_value){
                        $this->addError("{$item} must be a maximum of {$rule_value} characters.");
                    }
                break;
                case 'matches':
                    if($value != $source[$rule_value]) {
                        $this->addError("{$rule_value} must match {$item}.");
                    }
                break;
                case 'unique':
                    $check = $this->_db->get($rule_value, array($item, '=', $value));

                    if($check->count()) {
                        $this->addError("{$item} already exists.");
                    }
                break;
            }
        }
    }
}
if(empty($this->_errors)) {
    $this->_passed = true;
}
}

有谁知道如何轻松修改它以支持数组字段的验证?

谢谢。

// 在验证函数之前和文档加载之后

$("#NameOfTrigger").click(function() {
    var items = [];
    $("#NameOfFormOtParentContainer input[type=text]").each(function() {        
        items.add($(this).val);
    });        
});

//然后将项目数组传递给您的验证函数