一个小小的算法问题
比如:我们充值话费的时候,充大于10元送1元话费,充大于50元送5元话费。
那么此时,我充值的是51元话费,我怎么去命中的是50元送5元话费,而此时不再命中大于10元送1元话费了。
老大,帮我看下吧
<br />$a = array('50'=>'5','10'=>'1');<br />$s = 51;<br />function test($s,$a){<br /> $flag = 0;<br /> foreach($a as $k=>$v){<br /> if($s >=$k){<br /> $flag=$v;<br /> }<br /> }<br /> return $flag;<br />}<br />echo test($s,$a);<br />
$a = array('50'=>'5','10'=>'1');<br />$s = 51;<br />function test($s,$a){<br /> $flag = 0;<br /> foreach($a as $k=>$v){<br /> if($s >=$k){<br /> $flag=$v;<br /> break; //这样比较规范(一个模块只有一个出口)<br /> }<br /> }<br /> return $flag;<br />}<br />echo test($s,$a);
<br />[code=php]$a = array('50'=>'5','10'=>'1');<br />$s = 51;<br />function test($s,$a){<br /> $flag = 0;<br /> foreach($a as $k=>$v){<br /> if($s >=$k){<br />if($flag<$v) <br /> $flag=$v;<br /> <br /> }<br /> }<br /> return $flag;<br />}<br />echo test($s,$a);