Посчитать кол-во значений в массиве по условиям

У меня есть большой массив данных из чисел

array(5,5,10,20,30,40,50,64,7,10);

Как мне вывести из него кол-во значений от и до, как :

От 0 - 10

От 11 - 20

...

От 91-100

У меня получилось так, но это кажется не правильно

$array = array(5,5,10,20,30,40,50,64,7,10);

function Counter($array, $from, $to) {
    $count = 1;
    foreach ($array as $number) {
        if($number <= $to && $number >= $from) {
            $count++;
        }
    }
    return $count;
}

echo "<p>0 - 10:" . Counter($array, 0, 10). "</p>";
echo "<p>11 - 20:" . Counter($array, 11, 20). "</p>";
echo "<p>21 - 30:" . Counter($array, 21, 30). "</p>";

Ответы (2 шт):

Автор решения: Евгений Тихии
$numbers    = [105, 5, 10, 20, 30, 40, 50, 64, 7, 10, 99, 65, 44, 23, 150, 90, 12, 22, 16, 77, 74, 83, 90];
$conditions = [
    [0, 10],
    [11, 20],
    [21, 30],
    [30, 100]
];

foreach ($conditions as $cond) {
    foreach ($numbers as $num) {
        if ($num >= $cond[0] && $num <= $cond[1]) $countByCond["From $cond[0] to $cond[1]"]++;
    }
}

echo '<pre>';
print_r ($countByCond);

Array
(
    [From 0 to 10] => 4
    [From 11 to 20] => 3
    [From 21 to 30] => 3
    [From 30 to 100] => 12
)
→ Ссылка
Автор решения: MBo

Для данных диапазонов (ideone):

$array = array(5,5,10,20,30,40,50,64,7,10);
$a = array_fill(0, 10, 0);
foreach ($array as $number) 
  $a[(int)($number/10)]++;
print_r($a);
→ Ссылка