serejatoje
@serejatoje

Как сортировать ассоциативный массив в php?

Всем привет! Ребят, подскажите как отсортировать массив такого вида:
array (
  0 => 
  array (
    'laps' => 1,
    'time_ms' => array('value' => 'Y'),
  ),
  1 => 
  array (
    'laps' => 3,
    'time_ms' => array('value' => 'Y'),
  ),
  2 => 
  array (
    'laps' => 4,
    'time_ms' => array('value' => 'Y'),
  ),
  3 => 
  array (
    'laps' => 4,
    'time_ms' => array('value' => 'N'),
  ),
  4 => 
  array (
    'laps' => 5,
    'time_ms' => array('value' => 'Y'),
  ),
  5 => 
  array (
    'laps' => 2,
    'time_ms' => array('value' => 'N'),
  ),
  6 => 
  array (
    'laps' => 7,
    'time_ms' => array('value' => 'N'),
  ),
  7 => 
  array (
    'laps' => 8,
    'time_ms' => array('value' => 'Y'),
  ),
)

Сначала идут все элементы с time_ms = Y, и в этой "группе" должна быть сортировка по laps. Уже потом идут элементы с tims_ms = N, и так же с сортировкой по laps по возрастанию. Такое возможно, и как осуществить?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
serejatoje
@serejatoje Автор вопроса
Придумал всё же

$cmp = function ($a, $b) {
if ($a['time_ms']['value'] > $b['time_ms']['value'])
  return -1;
if ($a['time_ms']['value'] < $b['time_ms']['value'])
  return 1;
if ($a['laps'] > $b['laps'])
  return 1;
};
usort($arr, $cmp);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы