LINUX.ORG.RU

История изменений

Исправление korvin_, (текущая версия) :

Допускаю, что тоже неправильно понял исходную задачу.

Вроде пример no-such-file с SQL довольно понятен.

Заходим в доку, смотрим первый пример.

Исходный набор данных t:

 (id) | ar1 | ar2
------+-----+-----
  0   |  10 |  1
  1   | 100 |  3
  2   | 100 |  2
  3   |   0 |  4

Применяем

array_multisort($ar1, $ar2);
SELECT id, ar1, ar2 FROM t ORDER BY ar1

Получаем:

 (id) | ar1 | ar2
------+-----+-----
  3   |   0 |  4
  0   |  10 |  1
  2   | 100 |  2
  1   | 100 |  3

Применяем

(let ((ar1 '(10 100 100 0))
      (ar2 '( 1   3   2 4)))
  (format t "~a~%" (sort (list ar1 ar2) (multicolumn-sorter #'> '(1)))))

Получаем:

; ((10 100 100 0) (1 3 2 4))

то есть

 (id) | ar1 | ar2
------+-----+-----
  0   |  10 |  1
  1   | 100 |  3
  2   | 100 |  2
  3   |   0 |  4

Ничего не поменялось. Пробовал разное подставлять в columns =/

Исходная версия korvin_, :

Допускаю, что тоже неправильно понял исходную задачу.

Вроде пример no-such-file с SQL довольно понятен.

Заходим в доку, смотрим первый пример.

Исходный набор данных t:

 (id) | ar1 | ar2
------+-----+-----
  0   |  10 |  1
  1   | 100 |  3
  2   | 100 |  2
  3   |   0 |  4

Применяем

array_multisort($ar1, $ar2);
SELECT id, ar1, ar2 FROM t ORDER BY ar1

Получаем:

 (id) | ar1 | ar2
------+-----+-----
  3   |   0 |  4
  0   |  10 |  1
  2   | 100 |  2
  1   | 100 |  3

Применяем

(let ((ar1 '(10 100 100 0))
      (ar2 '( 1   3   2 4)))
  (format t "~a~%" (sort (list ar1 ar2) (multicolumn-sorter #'> '(1)))))

Получаем:

; ((10 100 100 0) (1 3 2 4))

то есть

 (id) | ar1 | ar2
------+-----+-----
  0   |  10 |  1
  1   | 100 |  3
  2   | 100 |  2
  3   |   0 |  4

Ничего не поменялось. Пробовал разное подставлять в columns =/