sort 的多列排序命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sort 的多列排序命令相关的知识,希望对你有一定的参考价值。

参考技术A Linux 下面 sort 可以按列排序,功能强大,但是其排序的说明有些晦涩。
举例下面这个命令:

上面的命令表示 -k 表示指定排序的规则,这里表示从第一列的第一个字符开始,到第一列的第六个字符结束,作为排序的key,r表示反向排序。基于上面的排序之后,按第二列到最后一列排序,其排序规则为根据数字大小进行排序。

如果用 --debug 参数,可以清晰的看到不同的 key 按顺序排序的过程。

按多列排序

Use instead of standard "sql\_tablesort()" function. Handles multiple "sort" in $header, but the arrow will be only on last sorted column. This can be handled with rewriting theme_table, for example.
  1. function multi_tablesort($header = array()) {
  2. $sorts = array('asc', 'desc');
  3. $sorter = '';
  4. $tablesort = array();
  5.  
  6. foreach($header AS $field) {
  7. if (in_array($field['sort'],$sorts)) {
  8. $tablesort[] = db_escape_string($field['field']) . ' ' . drupal_strtoupper(db_escape_string($field['sort']));
  9. }
  10.  
  11. }
  12.  
  13. if (count($tablesort) > 0) {
  14. $sorter = 'ORDER BY ' . implode(', ', $tablesort);
  15. }
  16.  
  17. return $sorter;
  18. }

以上是关于sort 的多列排序命令的主要内容,如果未能解决你的问题,请参考以下文章

GridControl 实现多列分组并随意排序

如何在 desc 中使用一列的多列排序?

按多列对 2D 向量进行排序

按多列排序

如何在 Laravel 5.1 中按多列对 Illuminate Collection 进行排序?

Pandas_简单排序复杂排序