Сортировка массива с помощью PHP usort не удалась

Я создал массив с циклом, создавая его примерно так:

$new_array[] = array(
    'rating_value' => (float)$rating_value
);

NEW: я добавляю длинный массив. Кажется, он работает с короткими массивами, но не с длинными.

        $new_array = array (
     0 => 
  array (
    'rating_value' => 4.5,
  ),
  1 => 
  array (
    'rating_value' => 0,
  ),
  2 => 
  array (
    'rating_value' => 4.5,
  ),
  3 => 
  array (
    'rating_value' => 3.5,
  ),
  4 => 
  array (
    'rating_value' => 3.5,
  ),
  5 => 
  array (
    'rating_value' => 3,
  ),
  6 => 
  array (
    'rating_value' => 5,
  ),
  7 => 
  array (
    'rating_value' => 2.5,
  ),
  8 => 
  array (
    'rating_value' => 3.5,
  ),
  9 => 
  array (
    'rating_value' => 4.5,
  ),
  10 => 
  array (
    'rating_value' => 0,
  ),
  11 => 
  array (
    'rating_value' => 0,
  ),
  12 => 
  array (
    'rating_value' => 4,
  ),
  13 => 
  array (
    'rating_value' => 4,
  ),
);

Я хочу отсортировать по rating_value,

usort($new_array, function($a, $b) {
    return $a['rating_value'] - $b['rating_value'];
});

print_r( $new_array );

Почему это не работает? Я не получаю числа в правильном порядке, просто в некотором роде.

Я посмотрел на многие предыдущие вопросы по stackru. Вот где я получил функцию usort, но все равно не повезло.

0 ответов

Другие вопросы по тегам