从数组范围中搜索值

时间:2014-07-05 05:22:53

标签: php arrays range

我试图从不同的范围中找到价值。

e.g。 我有一个值是5,现在我有不同的范围,如[0,100],[101-500]和[501-1000],所以我怎么能得出我的值5在[0,100]范围内使用php。

我尝试过in_array,但它只考虑一个范围,如下所示:

$arr = array("5", "25", "100", "200", "500");
foreach($arr as $val){
$i = $val; // Dynamic value   
if (in_array($i, range(0,10))) {
echo 'Your number is in between of range array';
}
}

这里我只能拿一个范围,我需要检查那里的不同范围。我怎样才能做到这一点 ?范围值[0,100],[101,500]和[501,1000]是固定的。

3 个答案:

答案 0 :(得分:1)

$rangeList = array("0-100","101-500","501-1000");

$testNo = 5;

foreach($rangeList as $range){
    list($start,$end) = explode("-",$range);
    if( $testNo >= $start && $testNo <= $end )
        die("Your number $testNo is in between of range [ $range ]");   
}
//out of range
die("Your number $testNo is out of range"); 

你需要什么?

答案 1 :(得分:1)

看起来您已经编写了部分代码。所有你需要的还有一些其他的if语句来检查你正在寻找的其他范围。作为奖励,这也打印出你正在看的三个范围内的数字。

$arr = array("5", "25", "100", "200", "500");

foreach($arr as $val) {
    $i = $val; // Dynamic value   
    if (in_array($i, range(0,100))) {
        echo "Your number {$i} is in between of range array (0-100)\n";
    }
    else if (in_array($i, range(101,500))) {
        echo "Your number {$i} is in between of range array (101-500)\n";
    }
    else if (in_array($i, range(501,1000))) {
        echo "Your number {$i} is in between of range array (501-1000)\n";
    }
}

示例输出:

Your number 5 is in between of range array (0-100)
Your number 25 is in between of range array (0-100)
Your number 100 is in between of range array (0-100)
Your number 200 is in between of range array (101-500)
Your number 500 is in between of range array (101-500)

答案 2 :(得分:0)

这可以做你想要的动作。

$range[1] = array (0,101,501);
$range[2] = array (100,500,1000);
$testNumber=7;
$count = count($range);
for ($i = 0; $i <= $count; $i++) 
{
    if ($testNumber>=$range[1][$i])
    {
        if  ($testNumber<=$range[2][$i])
        {
            echo $testNumber." is in range of [".$range[1][$i].' , '.$range[2][$i]."]";
            break;
        }
    }
    else if($testNumber<$range[1][$i])
    {
       echo "not found";break;
    }
}