例: 電話料金をリチャージする場合、10 元を超えるリチャージの場合は 1 元の電話クレジットが付与され、50 元を超えるリチャージの場合は 5 元の電話クレジットが付与されます。
それで、この時、私は 51 元の電話クレジットをリチャージしていました。なぜ、50 元のヒットで 5 元の電話クレジットが得られたのに、この時点では、もう 1 元の電話クレジットを得ることができませんでした。 10元以上。
ボス、チェックしてください
$a = array('50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){ $flag=$v; } } return $flag;}echo test($s,$a);
$a = array('50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){ return $v; //注意这里 } } return $flag;}echo test($s,$a);
$a = array('50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){ $flag=$v; break; //这样比较规范(一个模块只有一个出口) } } return $flag;}echo test($s,$a);
$a = array('50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){ $flag=$v; break; //这样比较规范(一个模块只有一个出口) } } return $flag;}echo test($s,$a);
$a を $a に置き換えると= 配列('40' => '3','50'=>'5','10'=>1'); そうすると結果は 3 になります。この時点では 51 は 50 より大きいので、5 になるはずです。
[code=php]$a = array('50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){if($flag<$v) $flag=$v; } } return $flag;}echo test($s,$a);
$a = array('40'=>'3','50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){ if($flag<$v) $flag=$v; } } return $flag;}echo test($s,$a);
$a = array('40'=>'3','50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){ if($flag<$v) $flag=$v; } } return $flag;}echo test($s,$a);
OK、これ解決されます。 3Q
??以上です。
$a = array('40'=>'3','50'=>'5','10'=>'1');$s = 51;arsort($a,SORT_NUMERIC); // 先按key大小排序function test($s,$a){ foreach($a as $k=>$v){ if($s >=$k){ return $v; } } return 0;}echo test($s,$a); // 5
ルールが十分に策定されていません
$a = array('40'=>'3','50'=>'5','10'=>'1');$s = 51;function test($s,$a){ $flag = 0; foreach($a as $k=>$v){ if($s >=$k){ $flag = max($flag, $v); //取大值 } } return $flag;}echo test($s,$a);