我计算出3个百分位值,将其存储在这样的变量中:
{{1}}
我的网站上的每个用户在变量$ percentile中都有一个20-100的值,我正尝试将其数字与上述三个变量之一最接近,因此我可以说:您是X百分位数的一部分
例如,如果用户的百分比值是'35',则他们将与$ 25匹配,因为这是最接近其数字的变量。
任何帮助将不胜感激
答案 0 :(得分:0)
if($percentile < 67.5){
echo $twentyfive
} elseif($percentile > 67.5 && $percentile < 87.7){
echo $fifty
}else{
echo $seventyfive
}
答案 1 :(得分:0)
如果3个变量的值可以更改,则可以使用它。可能有更简洁的方法,但这应该可行。
//Set users percentile
$user_percentile = 35;
$user_percentile_category = 25;
switch ($user_percentile) {
case $user_percentile <= $twentyfive:
$user_percentile_category = '25';
break;
case ($user_percentile - $twentyfive) < $fifty - $user_percentile:
$user_percentile_category = '25';
break;
case ($user_percentile - $twentyfive) >= $fifty - $user_percentile:
$user_percentile_category = '50';
break;
case ($user_percentile - $fifty) < $seventyfive - $user_percentile:
$user_percentile_category = '50';
break;
case ($user_percentile - $fifty) >= $seventyfive - $user_percentile:
$user_percentile_category = '75';
break;
default:
$user_percentile_category = '75';
}
答案 2 :(得分:0)
您可以为此使用以下代码:
function getClosest($search, $arr) {
$closest = null;
foreach ($arr as $item) {
if ($closest === null || abs($search - $closest) > abs($item - $search)) {
$closest = $item;
}
}
return $closest;
}
$collection = [55,80,95];
$searchValue = 88;
echo getClosest($searchValue, $collection);
希望它对您有帮助。我已经从Find a matching or closest value in an array
中获取了参考干杯!