首页 > 编程 > PHP > 正文

php数组排序

2020-03-22 18:23:19
字体:
来源:转载
供稿:网友
  • sort() 对索引数组进行升序排序,其反函数是 rsort()

    asort() 对关联数组的值进行升序排序,其反函数是 arsort()

    ksort() 对关联数组的键名进行升序排序,其反函数是 krsort()

    usort() 对多维数组进行排序 (还有uasort()和uksort()函数,用法一样)

    定义和用法

    usort() 函数使用用户自定义的函数对数组排序。

    注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 PHP 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。

    注释:本函数为 array 中的元素赋予新的键名。这会删除原有的键名。

    语法
    usort(array,sorttype)
    array必需。规定要排序的数组。function

    必需。用户自定义的函数。

    函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:

      如果 a = b, 返回 0如果 a > b, 返回 1如果 a < b, 返回 -1
    参数描述
    例子
    <?phpfunction my_sort($a, $b)  {  if ($a == $b) return 0;  return ($a > $b) ? -1 : 1;  }$arr = array("Peter", "glenn","Cleveland","peter","cleveland", "Glenn");usort($arr, "my_sort");print_r ($arr);?>

    输出:

    Array([0] => peter[1] => glenn[2] => cleveland[3] => Peter[4] => Glenn[5] => Cleveland)

    例2

    function compare($a,$b){
    if ($a[1]==$b[1]){
    return 0;
    }elseif ($a[1]>$b[1]){
    return 1;
    }else{
    return -1;
    }
    }

    $arr=array(
    array("df",123),
    array("aa",333),
    array("gg",222)
    );
    print_r($arr);

    echo "<br>";
    usort($arr,'compare');

    print_r($arr);

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表