比较Wordpress functions.php中的两个php数组范围

时间:2015-05-01 18:15:05

标签: php arrays wordpress

我有一个强大的专业表单字段设置了一个过滤器,以便在有人输入数字时测试该字段。如果数字在可接受的范围内(在这种情况下为200-300),则表单将提交,否则,表单将报告错误。我需要设置过滤器,以便比较两个或更多范围集而不是一个,但我不了解如何设置第二个甚至第三个范围。有两个或三个要比较的数组范围,它需要具有相同的功能。

add_filter('frm_validate_field_entry', 'my_custom_validation', 10, 3);
function my_custom_validation($errors, $posted_field, $posted_value){
  if($posted_field->id == 92){         
    if(!in_array($posted_value, range(200,300) ) ){ 
      //if it doesn't match up, add an error:
    $errors['field'. $posted_field->id] = 'You have entered an invalid number!';
    }         
  }
  return $errors;
}

我已经尝试设置两个if(!in_array ...语句,但我不太了解PHP以获得阵列范围比较的语法。请帮助我理解如何使这项工作谢谢!

1 个答案:

答案 0 :(得分:1)

您只需将支票与&&,"和"分开即可。语法:

if(!in_array($posted_value, range(200,300) ) && 
   !in_array($posted_value, range(400,500) ) && 
   !in_array($posted_value, range(900,999) ) ){ 

这样,如果给定的数字不在第一个范围内而不在第二个范围内,则错误情况将为真。如果它在任何范围内,则错误情况将为false。