Сортировка: сортировка массива на основе нескольких условий в Ruby

У меня есть многомерный массив вроде такого:

[
  [name, age, date, gender]
  [name, age, date, gender]
  [..]
]

Мне интересно, как лучше всего отсортировать этот массив на основе нескольких условий ... Например, как мне отсортировать на основе возраста сначала , затем по имени?

Я возился с методом sort вот так :

array.sort { |a,b| [ a[1], a[0] ] <=> [ b[1], b[0] ] }

Кроме того, я не совсем понимаю этот синтаксис, я не получаю ожидаемых результатов. Следует ли использовать метод sort ? Должен ли я индивидуально сравнивать результаты путем сопоставления массива?

21
задан pruett 17 January 2012 в 00:09
поделиться