循环并比较数组的每个元素?

时间:2011-02-18 10:36:03

标签: php

我正在尝试比较两个数组$min$max

中的每个元素
$test = false;
$min = array(2,3,3,55,556);
$max = array(22,32,4,56,557);
foreach($min as $key=>$val){
    foreach($max as $k=>$v){
      if($val >= $v){
        $test=true;
        break;
      }
  }
}


if($test){
  echo "A NOT GREATER THAN or EQUAL B";
}else{
  echo "YOU CAN SAVE NOW";
}

我错了什么?因为我收到了这条消息

  A NOT GREATER THAN or EQUAL B

感谢

4 个答案:

答案 0 :(得分:4)

您将$ min中的每个值与$ max中的每个值进行比较(直到您达到$ min的值大于$ max中的值) ),$ min中的55从$ max开始大于22,因此$ test将设置为true。

您是否只是想比较相应的$ min和$ max值?

$test = false;
$min = array(2,3,3,55,556);
$max = array(22,32,4,56,557);
foreach($min as $key=>$val){
   if($val >= $max[$key]){
     $test=true;
     break;
   }
}

答案 1 :(得分:1)

好吧,$ min数组中的55和556大于$ max数组中的22,23,4,56。您是否只想比较匹配的项目?

如果是这样,那么您的代码应如下所示:

foreach($min as $key=>$val){
   if($val >= $max[$key]){
       $test=true;
       break;
   }       
}

答案 2 :(得分:0)

你必须使用“突破2”来打破这两个方面。使用“break”(或“break 1”),您只能停止嵌套的foreach。但马克是对的,循环本身是错误的。

答案 3 :(得分:0)

不,这是你给出的条件,当556比较从22开始时循环停止,循环立即中断,所以你得到那个消息。