# 怎么简化这段代码

• 190

\$amount = 100; //110,90,200
\$arr = [98,100,100,120,150,160,183];

``````即：
\$amount = 100;    返回 [1,2];
\$amount = 110;    返回 [2,3];
\$amount = 90;     返回 [0];
\$amount = 200;    返回 [6];``````

``````\$key   = [];    //下标值的数组
\$count = count(\$arr) - 1;

foreach(\$arr as \$k => \$v){
if(\$amount == \$v){
\$key[] = \$k;
}
}
if(empty(\$key)){
foreach(\$arr as \$k => \$v){
if(\$amount < \$arr[0]){
\$key[] = '';
break;
}
}
}
if(empty(\$key)){
foreach(\$arr as \$k => \$v){
if(\$amount > \$arr[\$count]){
\$key[] = \$count;
break;
}
}
}
if(empty(\$key)){
foreach(\$arr as \$k => \$v){
if(\$amount >= \$arr[\$k] && \$amount < \$arr[\$k + 1]){
\$key[] = \$k;
\$key[] = \$k + 1;
}
}
}
var_dump(\$key);``````

##### 8个回答

``````\$amount = 100; //110,90,200
\$arr = [98, 100, 100, 120, 150, 160, 183];

\$equal = [];
\$contain = [];
\$result = [(\$amount > \$arr[count(\$arr) - 1] ? count(\$arr) - 2 : 0)];

foreach (\$arr as \$index => \$value) {
if (\$amount === \$value) {
\$equal[] = \$index;
} else if (\$value < \$amount) {
\$contain[0] = \$index;
} else if (count(\$contain) === 1) {
\$contain[] = \$index;
}
}

\$result = count(\$equal) ? \$equal : (count(\$contain) ? \$contain : \$result);

var_dump(\$result);``````