比较两个数组值

时间:2010-02-22 21:06:07

标签: php arrays

我有一张表格用于取消,驳回,修改和更正引文。无法通过解雇,修改或更正来实现无效。如果您需要撤销和修改,请填写两个表格。但是,您可以在同一表格上进行解雇,修改和/或更正。我有两个基于表单变量创建的数组。一个数组包含void部分的变量,另一个数组包含所有其他变量。

我正在尝试创建一个将虚空与其他所有空间进行比较的规则。我希望能够检查是否有任何void变量!=“”并且任何其他变量都是!=“”然后给出错误消息。

if($_POST[$all_other_fields] !== "" && $_POST[$void_fields] !== "")
                {
                  $all_ok = false;
        $citation_error_msg = "Blah, Blah Blah";
                 }

我在不知不觉中所做的事情已经说明来自两个阵列的所有变量必须!=“”。我想说两个数组中是否有一个变量!=“”,然后是错误信息。

我不确定如何进行比较。

1 个答案:

答案 0 :(得分:1)

所以,你说如果填写了一个空白字段,如果有人填写其他部分,则抛出错误?我可能会将我的表单重构为分页表单,您可以在其中询问用户希望执行的操作,然后使用特定表单向其显示。在表单上使用无关字段会让用户感到困惑。

无论如何,如果你坚持使用当前的表单设计,你需要有一个void字段名称数组,你将检查你的$ _POST。类似的东西:

$vf_flag=false;
$void_fields=array('vf1','vf2','vf3');
    foreach($void_fields as $vf) {
      if(!isset($_POST[$vf])) continue;
      $vf_flag=true;
      break; //only need one error
    }
$nonvf_flag=false;
//do the same as above except with a non_voidfields array()

if($nonvf_flag && $vf_flag) $citation_msg='blah blah blah';

这是一种冗长的方式,但它很简单。您也可以使用array_filter()和回调来执行此操作。