小编use*_*927的帖子

php数组中最近的次要数字

我有一个数组,例如(它可以是任何东西,但它已经订购):

array(1,7, 12, 18, 25);
Run Code Online (Sandbox Code Playgroud)

我需要找到最接近该数组的数字.

以上数组:

$needle = 11;
Run Code Online (Sandbox Code Playgroud)

我要检索的数组中的数字是7.11应该是最接近的数字12,但我不想要最接近的数字,我想要最小的最接近的数字,如果这是有道理的.

另一个例子:

  • 输入26检索到的号码应该是25
  • 输入1检索到的号码应该是1
  • 输入6检索到的号码应该是1
  • 输入7检索到的号码应该是7
  • 输入16检索到的号码应该是12

我发现了一个很好的功能,但它只检索最接近的数字,而不是最小的最接近的数字:

function closestnumber($number, $candidates) {
 for($i = 0; $i != sizeof($candidates); $i++) {
  $results[$i][0] = abs($candidates[$i] - $number);
  $results[$i][1] = $i;
 }
 sort($results);
 $end_result['closest'] = $candidates[$results[0][1]];
 $end_result['difference'] = $results[0][0];
 return $end_result;
}

$closest = closestnumber(8,array(1,7, 12, 18, 25));
echo "Closest: ".$closest['closest']."<br>";
echo …
Run Code Online (Sandbox Code Playgroud)

php numbers closest

3
推荐指数
1
解决办法
1744
查看次数

标签 统计

closest ×1

numbers ×1

php ×1