Nomeqc
1/6/2020 - 3:27 AM

理解usort函数排序

$list = [10, 2, 5, 4, 9, 8];
/*
理解usort函数排序:
假设 前一个值小于后一个值,即val1 < val2,如果返回一个大于0的值则表示val1和val2互换位置,
即大的在前,小的在后,此时为降序排序,反之如果返回一个小于0的值则表示val1和val2不换位置,
此时为升序排序
*/
usort($list, function($val1, $val2) {
    if($val1 == $val2) {
        return 0;
    }
    if($val1 < $val2) {
        return 1;
    } else {
        return -1;
    }
});
var_dump($list);
/*
输出:
array(6) {
  [0]=>
  int(10)
  [1]=>
  int(9)
  [2]=>
  int(8)
  [3]=>
  int(5)
  [4]=>
  int(4)
  [5]=>
  int(2)
}
*/