PHP Найти ближайший процентиль для пронумерованной переменной - PullRequest
0 голосов
/ 14 мая 2019

У меня есть 3 вычисленных значения процентиля, которые хранятся в переменных вроде этого:

$twentyfive = '55';
$fifty = '80';
$seventyfive = '95';

Каждый пользователь на моем веб-сайте имеет значение от 20 до 100, хранящееся в переменной: $ процентиль, и я пытаюсьсопоставьте их число, ближайшее к одной из трех приведенных выше переменных, поэтому я могу сказать: Вы являетесь частью X процентиля.

Например, если значение процентиля для пользователей было равно 35, они сопоставлялись бы с $ двадцать пятьютак как это самая близкая переменная к их числу.

Любая помощь будет оценена

Ответы [ 3 ]

0 голосов
/ 14 мая 2019

Если значения 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';
}
0 голосов
/ 14 мая 2019

Вы можете использовать следующий код для этого:

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

Надеюсь, это поможет вам. Я взял ссылку из Найти соответствующее или ближайшее значение в массиве

Ура !!

0 голосов
/ 14 мая 2019
if($percentile < 67.5){
   echo $twentyfive
}  elseif($percentile > 67.5 && $percentile < 87.7){
   echo $fifty
}else{
   echo $seventyfive
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...