直接上代码

if (!function_exists('sortByTwoField')) {

    /**
     * 数组按照两个字段排序
     * @param array $data 传入数组
     * @param string $field1 (首要字段+空格+排序方法) 例:field1 desc 默认DESC
     * @param string $field2 (次要字段+空格+排序方法) 例:field2 asc 默认DESC
     * @return array|string 排序好的数组
     */
    function sortByTwoField($data, $field1 = '', $field2 = '')
    {
        if(!is_array($data)) return '请传入数组';
        if (count($data) <= 0 || empty($field1) || empty($field2)) return $data;
        $sort1 = SORT_DESC;
        $sort2 = SORT_DESC;
        $f1 = explode(" ", $field1);
        $field1 = $f1[0];
        if (isset($f1[1])) {
            if (strtolower($f1[1]) == 'asc') $sort1 = SORT_ASC;
        }
        $f2 = explode(" ", $field2);
        $field2 = $f2[0];
        if (isset($f2[1])) {
            if (strtolower($f2[1]) == 'asc') $sort2 = SORT_ASC;
        }
        foreach ($data as $key => $value) {
            if (!isset($value[$field1])) return ["字段'{$field1}'不存在"];
            if (!isset($value[$field2])) return ["字段'{$field2}'不存在"];
            $price[$key] = $value[$field1];
            $num[$key] = $value[$field2];
        }
        array_multisort($price, $sort1, $num, $sort2, $data);
        return $data;
    }
}


调用方法 sortByTwoField(数组,'首要字段+空格+排序','次要字段+空格+排序') 不填写排序则默认倒序

$phb = array(
            ['id'=>1,'daka_day60'=>'1','likes'=>'8'],
            ['id'=>2,'daka_day60'=>'8','likes'=>'1'],
            ['id'=>3,'daka_day60'=>'5','likes'=>'2'],
            ['id'=>4,'daka_day60'=>'5','likes'=>'7'],
            ['id'=>5,'daka_day60'=>'5','likes'=>'5'],
        ) ;
$phb = sortByTwoField($phb, 'daka_day60', 'likes asc');


结果

 "phb": [
            {
                "id": 2,
                "daka_day60": "8",
                "likes": "1"
            },
            {
                "id": 3,
                "daka_day60": "5",
                "likes": "2"
            },
            {
                "id": 5,
                "daka_day60": "5",
                "likes": "5"
            },
            {
                "id": 4,
                "daka_day60": "5",
                "likes": "7"
            },
            {
                "id": 1,
                "daka_day60": "1",
                "likes": "8"
            }
        ]

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部