PHP函数usort例子

usort可以根据自定义函数排序, 官网例子:

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");
var_dump($a);
// output:
/*
array(5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(5)
  [4]=>
  int(6)
}
*/
?>

 

按照用回自定义的顺序排序:

<?php
function cmp($a, $b) {
    $order = array(1,3,2,5,4);

    $keya = array_search($a['STATUS'], $order);
    $keyb = array_search($b['STATUS'], $order);

    if($keya === false) 
            return -1;

    if($keyb === false)
            return 1;

    if($keya === $keyb) 
            return 0;

    return ($keya > $keyb) ? 1 : -1;
}

$array = 
    array(
        array('ITEMCODE'=>73691650,'STATUS'=>'1'),
        array('ITEMCODE'=>73691651,'STATUS'=>'2'),
        array('ITEMCODE'=>73691652,'STATUS'=>'3'),
        array('ITEMCODE'=>73691653,'STATUS'=>'3'),
        array('ITEMCODE'=>73691654,'STATUS'=>'4'),
        array('ITEMCODE'=>73691655,'STATUS'=>'2'),
        array('ITEMCODE'=>73691656,'STATUS'=>'5'),
        array('ITEMCODE'=>73691657,'STATUS'=>'2'),
);

usort($array, 'cmp');
var_dump($array);
// output:
/*
array(8) {
  [0]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691650)
    ["STATUS"]=>
    string(1) "1"
  }
  [1]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691652)
    ["STATUS"]=>
    string(1) "3"
  }
  [2]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691653)
    ["STATUS"]=>
    string(1) "3"
  }
  [3]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691657)
    ["STATUS"]=>
    string(1) "2"
  }
  [4]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691651)
    ["STATUS"]=>
    string(1) "2"
  }
  [5]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691655)
    ["STATUS"]=>
    string(1) "2"
  }
  [6]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691656)
    ["STATUS"]=>
    string(1) "5"
  }
  [7]=>
  array(2) {
    ["ITEMCODE"]=>
    int(73691654)
    ["STATUS"]=>
    string(1) "4"
  }
}
*/

转载于:https://www.cnblogs.com/DavidYan/articles/2516354.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值