PHP查找编号变量的最近百分比
我计算了3个百分位值,这些值存储在如下变量中:PHP查找编号变量的最近百分比,php,math,Php,Math,我计算了3个百分位值,这些值存储在如下变量中: $twentyfive = '55'; $fifty = '80'; $seventyfive = '95'; 我网站上的每个用户都有一个20-100之间的值存储在变量中:$percentile,我试图将他们的数字与上述三个变量中最接近的一个匹配,这样我就可以说:你是X百分位数的一部分 例如,如果用户的$percentile值为'35',他们将与$Twenty5匹配,因为这是与他们的数字最接近的变量 如果($percentile67.5&$per
$twentyfive = '55';
$fifty = '80';
$seventyfive = '95';
我网站上的每个用户都有一个20-100之间的值存储在变量中:$percentile,我试图将他们的数字与上述三个变量中最接近的一个匹配,这样我就可以说:你是X百分位数的一部分
例如,如果用户的$percentile值为'35',他们将与$Twenty5匹配,因为这是与他们的数字最接近的变量
如果($percentile<67.5),任何帮助都将不胜感激{
if($percentile < 67.5){
echo $twentyfive
} elseif($percentile > 67.5 && $percentile < 87.7){
echo $fifty
}else{
echo $seventyfive
}
回声二十五美元
}elseif($percentile>67.5&$percentile<87.7){
五十美元
}否则{
回声七十五美元
}
如果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';
}
//设置用户百分比
$user_百分位=35;
$user\u percentile\u category=25;
开关($user_百分位){
案例$user_百分位=$50-$user_百分位:
$user_percentile_category='50';
打破
案例($user_百分位-$50)<$seventyfive-$user_百分位:
$user_percentile_category='50';
打破
案例($user_百分位-$50)>=$seventyfive-$user_百分位:
$user_percentile_category='75';
打破
违约:
$user_percentile_category='75';
}
您可以为此使用以下代码:
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);
希望对你有帮助。我已从中引用了参考资料
干杯 您应该尝试自己编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。请务必阅读。给用户提供这些百分位数的范围是什么?比如二十五美元二十到五十美元?到因此,如果您不想硬编码值,则获取差值并将其除以2,然后将其添加到值中