【问题标题】:Compare two php array ranges in Wordpress functions.php比较 Wordpress functions.php 中的两个 php 数组范围
【发布时间】:2015-05-01 18:15:05
【问题描述】:

我有一个强大的 pro form 字段,设置了一个过滤器,用于在有人输入数字时测试该字段。如果数字在可接受的范围内(在本例中为 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,无法正确获取数组范围比较的语法。请帮助我了解如何完成这项工作。谢谢!

【问题讨论】:

    标签: php arrays wordpress


    【解决方案1】:

    你只需要用&&分隔你的检查,“and”语法:

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

    这样,如果给定的数字不在第一个范围内并且不在第二个范围内,等等。错误情况将是真实的。如果它在任何范围内,则错误情况将为假。

    【讨论】:

    • 这正是我所需要的。谢谢@Digital Chris。
    猜你喜欢
    • 2017-07-02
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多