我正在尝试比较两个数组$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
感谢
答案 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开始时循环停止,循环立即中断,所以你得到那个消息。