PHP 二维数组根据某个字段按指定排序方式排序

/**
 * 二维数组根据某个字段按指定排序方式排序
 * @param $arr array 二维数组
 * @param $field string 指定字段
 * @param int $sort_order string SORT_ASC 按照上升顺序排序, SORT_DESC 按照下降顺序排序(具体请参考array_multisort官方定义)
 * @param int $sort_flags string 排序类型标志(具体请参考array_multisort官方定义)
 * @return mixed
 *
 * demo
 * // 定义数组
 * $arr = [['name'=>'bbb'], ['name'=>'aaa'], ['name'=>'Ccc']];
 * // 需要按照name字段字符串升序排序
 * $arr = arraySort($arr, 'name', SORT_ASC, SORT_STRING);
 * // 需要按照name字段字符串升序排序,但忽略大小写
 * $arr = arraySort($arr, 'name', SORT_ASC, SORT_FLAG_CASE | SORT_STRING);
 */
function multiArraySort($arr, $field, $sort_order = SORT_ASC, $sort_flags = SORT_REGULAR)
{
    // 异常判断
    if (!$arr || !is_array($arr) || !$field) {
        return $arr;
    }

    // 将指定字段的值存进数组
    $tmp = [];
    foreach ($arr as $k => $v) {
        $tmp[$k] = $v[$field];
    }
    if (!$tmp) {
        return $arr;
    }

    // 调用php内置array_multisort函数
    array_multisort($tmp, $sort_order, $sort_flags, $arr);
    return $arr;
}

 

转载于:https://www.cnblogs.com/lzs-888/p/10143508.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值