为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 为编号变量查找最接近的百分位数

PHP 为编号变量查找最接近的百分位数

PHP
慕斯王 2021-06-16 05:25:52
我计算了 3 个百分位值,这些值存储在这样的变量中:$twentyfive = '55';$fifty = '80';$seventyfive = '95';我网站上的每个用户都有一个 20-100 存储在变量中的值:$percentile,我试图匹配他们最接近上述三个变量之一的数字,所以我可以说:你是 X 百分位数的一部分。例如,如果用户 $percentile 值是 '35',他们将与 $twentyfive 匹配,因为这是与他们的数字最接近的变量。任何帮助,将不胜感激
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

如果 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';

}


查看完整回答
反对 回复 2021-06-19
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您可以使用以下代码:


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);


查看完整回答
反对 回复 2021-06-19
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

if($percentile < 67.5){

   echo $twentyfive

}  elseif($percentile > 67.5 && $percentile < 87.7){

   echo $fifty

}else{

   echo $seventyfive

}


查看完整回答
反对 回复 2021-06-19
  • 3 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信