php сравнить / сопоставить диапазон значений - PullRequest
1 голос
/ 27 сентября 2011

У меня есть массив, с которым мне нужно сравнить данные из MySQL. Обычно я делаю прямое сравнение, поэтому я могу сделать if ($array[$i]===$mysql[$i]), но у меня есть один случай, когда мне нужно сопоставить его с диапазоном чисел (например, 18-19, 20-24 и т. Д.). Я посмотрел в preg_match & preg_grep, но они, кажется, не то, что я хочу ...

Мне просто нужен истинный / ложный результат сравнения.

Часть массива, с которой я пытаюсь сопоставить, выглядит следующим образом:

"age"=>array(
        '18-19'=>array('total'=>0,'completed'=>0),
        '20-24'=>array('total'=>0,'completed'=>0),
        '25-29'=>array('total'=>0,'completed'=>0),
        '30-34'=>array('total'=>0,'completed'=>0),
        '35-39'=>array('total'=>0,'completed'=>0),
        '40-44'=>array('total'=>0,'completed'=>0),
        '45-49'=>array('total'=>0,'completed'=>0),
        '50-54'=>array('total'=>0,'completed'=>0),
        '55-59'=>array('total'=>0,'completed'=>0)
),"race"=>array(
        "White"=>array('total'=>0,'completed'=>0),
        "Black"=>array('total'=>0,'completed'=>0),
        "Hispanic"=>array('total'=>0,'completed'=>0),
        "Asian"=>array('total'=>0,'completed'=>0),
        "Pacific Islander"=>array('total'=>0,'completed'=>0),
        "Multiracial"=>array('total'=>0,'completed'=>0),
        "Other"=>array('total'=>0,'completed'=>0)
)

Есть ли чистый способ сделать это?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 27 сентября 2011
list($min,$max) = explode('-', $array[$i]);
if ($mysql[$i] >= $min && $mysql[$i] <= $max) ...
1 голос
/ 27 сентября 2011

PHP * функция 1001 * range () может быть полезна:

foreach ($array['age'] as $ageRange => $something) {
    list($start, $limit) = explode('-', $ageRange);
    foreach (range($start, $limit) as $age) {
        // compare
    }
}
...