Skip to content
Advertisement

Parse string containing range of values to min and max variables

I’m looking for a nice way to parse a string into two variables using PHP. The variables are called minage and maxage, and they should be parsed according to the examples below:

"40" -> minage=40, maxage=40
"-40" -> minage=null, maxage=40
"40-" -> minage=40, maxage=null
"40-60" -> minage=40, maxage=60

Advertisement

Answer

Try this:

$minrange = null;
$maxrange = null;
$parts = explode('-', $str);
switch (count($parts)) {
case 1:
    $minrange = $maxrange = intval($parts[0]);
    break;
case 2:
    $minrange = $parts[0] == "" ? null : intval($parts[0]);
    $maxrange = $parts[1] == "" ? null : intval($parts[1]);
    break;
}
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement