二位数组排序

排序函数

<?php
function sort_arr($arr,$clum,$sort="desc"){
    if(count($arr)==0){
        return false;
    }
    $newArr = $values = array();
    foreach($arr as $key=>$item){
        $values[$key] = $item[$clum]; 
    }
    if($sort=="desc"){
        arsort($values);
    }else{
        asort($values);
    }
    $newArr = array();
    foreach($newValues as $key=>$item){
        $newArr[] = $arr[$key];
    }
    return $newArr;
}

?>
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4
wanghan

这样不行,具体为什么我忘了

4年前 评论
wanghan
public static function sortArrByKey($array,$key='id',$rule='desc')
    {
        strtolower($rule) === 'asc' ? $rule = 'SORT_ASC' : $rule = 'SORT_DESC';

        $arrSort=[];

        foreach($array as $unique => $row)
        {
            foreach($row as $key => $value)
            {
                $arrSort[$key][$unique]=$value;
            }
        }

        array_multisort($arrSort[$key],constant($rule),$array);

        return $array;
    }
4年前 评论
xujinhuan 4年前
wanghan (作者) 4年前
kakasaber (楼主) 4年前

二维数组根据字段进行排序

function array_sequence($data = [], $field, $sort = 'SORT_DESC')
    {
        $arrSort = [];
        foreach ($data as $id => $row) {
            foreach ($row as $key => $value) {
                $arrSort[$key][$id] = $value;
            }
        }
        array_multisort($arrSort[$field], constant($sort), $data);
        return $data;
    }
4年前 评论

也可以实现

usort($array, function ($a, $b) {
        return $a['id'] <=> $b['id'];
});
4年前 评论
xujinhuan 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!