Mailinglisten-Archive |
Thomas Froehlich schrieb > ich suche nach einer uebersichtlichen Moeglichkeit zu pruefen, > ob sich eine Zahl in einem Wertebereich befindet (da die > Zahl in verschiedenen bereichen oder gar nur mit Einzelwerten > identisch sein kann, waeren hier viele unuebersichtliche > if-Schleifen notwendig ;-/ ). > > Beispiel-Fragestellung: liegt die vom User eigegebene Zahl XX > im Bereich von "100-199" oder im Bereich "310-320" oder > ist sie "500". Ich hätte als Lösungsansatz noch folgendes zu bieten, mit dem Vorteil das das Ganze halbwegs in einer Funktion gekapselt ist und spätestens einiges an Tipparbeit spart, wenn Du 10 Bereiche hast. Die Angabe der zulässigen Werte-Bereiche sollte außerdem ganz gut lesbar sein. function in_range($needle, $haystack) { $erg = 0; $one = explode("|", $haystack); $anz = count($one); for($i=0; $i < $anz; $i++) { $x = explode("-", $one[$i]); if(($needle >= $x[0]) && ($needle <= $x[1])) { $erg = 1; break; } } return $erg; } $testwert = 500; $range = "100-199|310-320|500-500"; if(in_range($testwert, $range) == 1) { echo "alles wird gut"; } else { echo "Mist"; } Guido Haeger
php::bar PHP Wiki - Listenarchive