2013-03-13 115 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