PHP二维数组利用其中的某个key的值重新排序

lys2017年12月22日 0条评论

PHP二维数组利用其中的某个key的值重新排序

/**
 * 二维数组降序排序
 * @param $arr
 * @param $field //依据这个key来排序
 * @return array
 */
function reDescSort(&$arr, $field)
{
    $ss = function ($key) {
        return function ($a, $b) use ($key) {
            return $a[$key] < $b[$key];     //通过改变大于、小于来正向反向排序
        };
    };
    usort($arr, $ss($field));
    return $arr;
}

如:

<?php
function reDescSort(&$arr, $field)
{
    $ss = function ($key) {
        return function ($a, $b) use ($key) {
            return $a[$key] < $b[$key];     //通过改变大于、小于来正向反向排序
        };
    };
    usort($arr, $ss($field));
    return $arr;
}
$arr = [
    [
      'money'=>3,
      'name'=>'商品1'
    ],
    [
      'money'=>5,
      'name'=>'商品2'
    ]
];
reDescSort($arr, 'money');
var_dump($arr);

输出:

array(2) {
[0]=>
    array(2) {
      ["money"]=>int(5)
      ["name"]=>string(7) "商品2"
    }
[1]=>
   array(2) {
      ["money"]=> int(3)
      ["name"]=>string(7) "商品1"
    }
}