2013-03-13 139 views
-3

我有一個這樣的名單:問題與if語句

<f:option1>0</f:option1> 
<f:option2>50 000</f:option2> 
<f:option3>100 000</f:option3> 
<f:option4>150 000</f:option4> 
<f:option5>200 000</f:option5> 
<f:option6>250 000</f:option6> 

<f:max_value>150 000</f:max_value> 
<f:min_value>0</f:min_value> 

<f:value1>1,50</f:value1> 
<f:value2>2,00</f:value2> 
<f:value3>3,00</f:value3> 
<f:value4>4,00</f:value4> 
<f:value5>5,00</f:value5> 
<f:value6>6,00</f:value6> 

此列表時刻都在變化,我想編寫一個if語句,以得到正確的值

$target_option = 50 000;//Should get me $target_value = 2,00 

if (($option6 > 0) && ($option6 <= $target_value) && ($min_value <= $target_value) && ($max_value => $target_value)){ 
    $target_value = $value6; 
}elseif (($option5 > 0) && ($option5 <= $target_value) && ($min_value <= $target_value) && ($max_value => $target_value)){ 
    $target_value = $value5; 
}elseif (($option4 > 0) && ($option4 <= $target_value) && ($min_value <= $target_value) && ($max_value => $target_value)){ 
    $target_value = $value4; 
}elseif (($option3 > 0) && ($option3 <= $target_value) && ($min_value <= $target_value) && ($max_value => $target_value)){ 
    $target_value = $value3; 
}elseif (($option2 > 0) && ($option2 <= $target_value) && ($min_value <= $target_value) && ($max_value => $target_value)){ 
    $target_value = $value2; 
}elseif (($option1 > 0) && ($option1 <= $target_value) && ($min_value <= $target_value) && ($max_value => $target_value)){ 
    $target_value = $value1; 
} 

任何人都可以看到我做錯了什麼,或者是否有更好的方法來做到這一點?

編輯:

硒我的完整代碼在這裏:http://pastebin.com/5pfh4JzF

編輯2

找到另一個說法錯誤。

+0

什麼是錯誤的? – 2013-03-13 12:25:56

+0

您如何閱讀這些數據? – 2013-03-13 12:26:50

+0

沒有錯誤,但沒有返回。當我嘗試2000條目的列表時,沒有一個返回這個if語句。 – 2013-03-13 12:36:31

回答

0

有2個錯誤

$target_option = 50 000; 

768,16是

$target_option = 50000; // no spaces 

他們每個人的最後一條語句

($max_value => $target_value) 

應該

($max_value >= $target_value) 

使用任何代碼編輯器,以避免這種錯誤

http://netbeans.org/downloads/

+0

按照您的建議更改,但仍然沒有運氣。 – 2013-03-13 12:50:41