$amount = 100; //110,90,200
$arr = [98,100,100,120,150,160,183];
如上:变量$amount跟$arr进行对比,如果变量在数组中,则返回数组中的下标值;
如果变量不在数组中,先检测变量是否在哪两个值(AB)之间,如果在,则返回这AB的下标;
如果不在两个值之间,若变量小于数组的第一个值,则返回下标0;
若变量大于数组的最后的值,则返回数组长度减一。
即: $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);
慕后森
幕布斯6054654
慕神8447489
随时随地看视频慕课网APP