# 怎么简化这段代码

• 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个回答
``````function calcIndex(\$value, \$resource = [])
{
if (\$value < min(\$resource)) {
return [0];
} else if (\$value > max(\$resource)) {
return [count(\$resource) - 1];
}
\$result = [];
foreach (\$resource as \$index => \$item) {
if (\$item == \$value) {
\$result[] = \$index;
} else if (\$index < count(\$resource) - 1 && \$value > \$item && \$value < \$resource[\$index + 1]) {
\$result = [\$index, \$index + 1];
}
}
return \$result;
}``````