Or just use a simple chain of if statements :)

if ($num >= 200 && $num <= 299) {
    echo "$num is between 200 and 299";
} else if ($num >=1000 && $num <= 2263) {
    echo "$num is between 1000 and 2263";
} else if ($num >=2264 && $num <= 2499) {
    echo "$num is between 2264 and 2499";
} else {
    echo "$num is not between 200 and 299, 
        1000 and 2263 or 2264 and 2499";
}

If you have a large number of these to do,
you could store your upper and lower bounds
in an array and use a loop to process the
bounds.

ie.
// set up our bounds
$bounds = array (
    -10, -1,
    0, 199,
    200, 299,
    1000, 2263,
    2264, 2499
);

// make sure that we have a matched sets of bounds
// the bounds array should have at least 2 elements
// and the remainer (modulus) of $count / 2 should be 0
$count = count ($bounds);

$count > 1 AND 0 === ($count % 2)
    OR die ('The $bounds array must contain one or more matched
        elements.');

for ($index = 0; $index < $count; $index += 2) {
    if ($number >= $bounds[$index] && $number <= $bounds[$index + 1]) {
        $between = sprintf ("%s is between %s and %s.",
            $number, $bounds[$index], $bounds[$index + 1]);
        break;
    }
}

if (isset ($between)) {
    echo $between;
} else {
    // join the bounds into a string separated by ..
    $bounds = join ('..', $bounds);

    // convert every second set of .. to <br>
    $bounds = ereg_replace ('([^.]+\.\.[^.]+)\.\.', '\1<br>', $bounds);
 
    echo "Number $number not found with any of the specified
        ranges:<blockquote>$bounds</blockquote>";
}





--zak

----- Original Message ----- 
From: "MaD dUCK" <[EMAIL PROTECTED]>
To: "Joseph Blythe" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, May 17, 2001 7:53 PM
Subject: Re: [PHP] Finding if a number is in the range


> also sprach Joseph Blythe (on Fri, 18 May 2001 11:12:23AM +0930):
> > How do I find if a number is in a range example:
> 
> assuming that the ranges are continuous, make an array of the first
> number for each range and then implement a custom binary search for
> O(lg n) performance.
> 
> martin;              (greetings from the heart of the sun.)
>   \____ echo mailto: !#^."<*>"|tr "<*> mailto:"; net@madduck
> -- 
> "i wish there was a knob on the tv to turn up the intelligence.
>  there's a knob called 'brightness', but it doesn't seem to work."
>                                                           -- gallagher
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to