首页 > 文章列表 > PHP中如何快速查找数字所属区间?

PHP中如何快速查找数字所属区间?

140 2024-12-07

PHP中如何快速查找数字所属区间?

如何在 php 中确定数字落在哪个区间?

如何确定一个数字落在给定的区间?例如,给定一个数字 123 和一个区间数组 [10, 20, 50, 100, 200, 500],我们需要返回该数字所在的区间,即 100 或下标 3。

解决方案:

我们可以利用 php 的内置函数来巧妙地解决这个问题。

<?php

// 给定的区间数组
$arr = [10, 20, 50, 100, 200, 500];

// 确定数字所在区间的函数
function findIndex($arr, $num) {
    // 在数组末尾添加给定数字
    $arr[] = $num;
    
    // 对数组进行排序
    sort($arr);
    
    // 获取给定数字在排序数组中的索引
    $index = array_search($num, $arr);
    
    // 判断索引是否有效
    if ($index === false) {
        return -1;
    }
    
    // 根据给定数字与相邻元素的关系确定区间
    $lastIndex = $index - 1;
    $nextIndex = $index + 1;

    if ($lastIndex < 0) {
        return 0;
    } elseif ($nextIndex >= count($arr)) {
        return count($arr) - 1;
    } else {
        return $arr[$lastIndex] <= $arr[$index] 
            && $arr[$index] < $arr[$nextIndex]
            ? $lastIndex
            : $index;
    }
}

// 测试
$res = findIndex($arr, 123);
var_dump($res); // 输出:3

?>
来源:1733007495