2011-02-18 61 views
0

我想每個元素從兩個陣列$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

我猜你正在試圖做的是看是否第一個數組中的每個元素,是> =它的等效單元的第二陣列在哪?這是真的? – 2011-02-18 10:41:06

+0

是,它的第二陣列 – kn3l 2011-02-18 10:44:03

回答

4

你比較值從$分鐘,從$最大每值(直到你打的$分鐘的值大於$最大一值),並從55分鐘$大從$ max中超過22,所以$ test將被設置爲true。

你只是想比較對應的$ min和$最大值?

$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; 
    } 
} 
+0

洛爾在等效的元件,如2分鐘開字面上完全相同的代碼/註釋。幹得好:-P – 2011-02-18 10:44:47

0

您必須使用「打破2「打破雙方的foreach。隨着「破」(或「破1」),你只停止嵌套的foreach。但馬克是正確的,循環本身是錯誤的。

1

好,55和556從$分鐘陣列比22,23,4,56從$最大陣列更大。你想只比較匹配的項目嗎?

如果是的話那麼你的代碼應該是這樣的:

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

不,這爲u給那裏的條件,環路停車時556比開始與22,立即迴路斷線所以你得到這個消息。

相關問題