zoukankan      html  css  js  c++  java
  • php的排序函数

    sort(array,sortingtype);
    
    参数 描述
    array 必需。规定要进行排序的数组。
    sortingtype 可选。规定如何比较数组的元素/项目。可能的值:
    0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)
    1 = SORT_NUMERIC - 把每一项作为数字来处理。
    2 = SORT_STRING - 把每一项作为字符串来处理。
    3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
    4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
    5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
    
    定义和用法
    sort() 函数对索引数组进行升序排序。
    rsort() 函数对索引数组进行降序排序,其他用法一样。
    注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。
    如果成功则返回 TRUE,否则返回 FALSE。
    提示:请使用 rsort() 函数对索引数组进行降序排序。
    返回值 若成功则返回 TRUE,若失败则返回 FALSE。
    • sort() 函数用于对数组单元从低到高进行排序。
    •   rsort() 函数用于对数组单元从高到低进行排序。
    •   asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
       PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
    
    •   arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
       PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。
    
    •   ksort() 函数用于对数组单元按照键名从低到高进行排序。
      PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。本函数会保留原来的键名,因此常用于关联数组。
    
    •   krsort() 函数用于对数组单元按照键名从高到低进行排序。
      PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。
    
    usort(array,myfunction);
    
    使用用户自定义的比较函数对数组 $a 中的元素进行排序:
    <?php
    function my_sort($a,$b)
    {
    if ($a==$b) return 0;
       return ($a<$b)?-1:1;
    }
    
    $a=array(4,2,8,6);
    usort($a,"my_sort");
    
    $arrlength=count($a);
    for($x=0;$x<$arrlength;$x++)
       {
       echo $a[$x];
       echo "<br>";
       }
    ?>
    
    1、使用array_multisort
    
    使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下:
    
    代码如下:
    <?php
    $ages = array();
    foreach ($users as $user) {
      $ages[] = $user['age'];
    }
    array_multisort($ages, SORT_ASC, $users);
    
    执行后,$users就是排序好的数组了,可以打印出来看看。如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用:
    
    代码如下:
    array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
    
    2、使用usort
    
    使用这个方法最大的好处就是可以自定义一些比较复杂的排序方法。例如按照名称的长度降序排列:
    
    代码如下:
    <?php
    usort($users, function($a, $b) {
          $al = strlen($a['name']);
          $bl = strlen($b['name']);
          if ($al == $bl)
            return 0;
          return ($al > $bl) ? -1 : 1;
        });
    
    这里使用了匿名函数,如果有需要也可以单独提取出来。其中$a, $b可以理解为$users数组下的元素,可以直接索引name值,并计算长度,而后比较长度就可以了。
    
  • 相关阅读:
    参数innodb_force_recovery影响了整个InnoDB存储引擎的恢复状况
    innodb_fast_shutdown的内幕
    MySQL关闭过程详解和安全关闭MySQL的方法
    MySQL优化之Explain命令解读,optimizer_trace
    使用Amanda ZRM备份远程MySQL数据库
    类Unix上5个最佳开源备份工具 Bacula/Amanda/Backupninja/Backuppc/UrBackup
    获取 MySQL 崩溃时的 core file
    使用mysqldump备份时为什么要加上 -q 参数(5.7默认为on)
    关联与下钻:快速定位MySQL性能瓶颈的制胜手段
    MySQL安全策略
  • 原文地址:https://www.cnblogs.com/niuben/p/11192709.html
Copyright © 2011-2022 走看看