php 排序 array_multisort 二维数组排序

       sort() 函数用于对数组单元从低到高进行排序。
  rsort() 函数用于对数组单元从高到低进行排序。
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
  ksort() 函数用于对数组单元按照键名从低到高进行排序。

  krsort() 函数用于对数组单元按照键名从高到低进行排序。

一、sort()

       

       例子:

?
1
2
3
4
5
$arr = array ( "b" , "a" , "c" );
sort( $arr );
print_r( $arr );
?>

  运行该例子输出:

?
1
Array ( [0] => a [1] => b [2] => c )
       rsort()
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。
二、 asort()
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
$arr = array ( "b" , "a" , "c" );
asort( $arr );
print_r( $arr );
?>

    运行该例子输出:


1
Array ( [1] => a [0] => b [2] => c )
       arsort()
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。
三、ksort()
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。

例子:
  


1
2
3
4
$arr = array ( "b" =>18, "a" =>20, "c" =>25);
  ksort( $arr );
  print_r( $arr );
  ?>

  运行该例子输出:

1
Array ( [a] => 20 [b] => 18 [c] => 25 )

  krsort()
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。



四、array_multisort 二维数组 函数排序
例如:$res 数组  
     要求: 按照point(积分)倒序,num(数量)正序 排序 
 $res = array();
    $res[] = array('point' => 67, 'num' => 2);
    $res[] = array('point' => 86, 'num' => 1);
    $res[] = array('point' => 85, 'num' => 6);
    $res[] = array('point' => 98, 'num' => 2);
    $res[] = array('point' => 86, 'num' => 6);
    $res[] = array('point' => 67, 'num' => 7);

    // 取得列的列表
    foreach ($res $key => $v)
    {
        $ point[$key]  = $v['volume'];
        $num[$key] = $rv['edition'];
    }
    array_multisort($point, SORT_DESC, $num, SORT_ASC, $res);
    print_r($data);
?>

注:若仅按 point 排序则: array_multisort ( $point , SORT_DESC , $res ) ;
        若仅按 num排序则: array_multisort ( $num , SORT_ASC , $res ) ;

输出结果:


复制代码 代码如下:
Array
(
    [0] => Array
        (
            [ point ] => 98
            [num] => 2
        )
    [1] => Array
        (
            [ point ] => 86
            [num] => 1
        )
    [2] => Array
        (
            [ point ] => 86
            [num] => 6
        )
    [3] => Array
        (
            [ point ] => 85
            [num] => 6
        )
    [4] => Array
        (
            [ point ] => 67
            [num] => 2
        )
    [5] => Array
        (
            [ point ] => 67
            [num] => 7
        )
)
五、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值