PHP二维数组排序问题

PHP二维数组排序问题
数据如上,正常这个数组是按照 order_sort 倒序这个字段排序,

现在遇到问题是,假设这个字段相同重复,第二个排序条件,就按照 ballhallclick_count 这个值更大的优先级排列

PHP二维数组排序问题

如何才能根据这个两个字段优先级排列,请问有什么方法吗?给些意见参考

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

file $dataArray = sortArrByManyField($result,'order_sort',SORT_DESC,'click_count',SORT_DESC,'distances',SORT_ASC);

3年前 评论
╰ゝSakura 3年前
讨论数量: 7

array_multisort 了解一下

3年前 评论
颠倒的玉石

同一楼

3年前 评论

@颠倒的玉石 你们仔细看一下,主要是在第一个条件下,保证第二个字段的排序,不是说单一的一个字段排序

3年前 评论
╰ゝSakura

$arr = [ ["f" => 1, "s" => 2], ["f" => 1, "s" => 3], ["f" => 2, "s" => 3], ];

$first = array_column($arr, "f"); $second = array_column($arr, "s");

array_multisort($first, SORT_ASC, $second, SORT_DESC, $arr); var_dump($arr);

贴段代码给你,自己运行下就懂了,1 楼说的是没问题的

3年前 评论

order('sort desc,sss desc') ???

3年前 评论

$arr = [ ["f" => 1, "s" => 2], ["f" => 1, "s" => 3], ["f" => 2, "s" => 3], ];

    $first = array_column($arr, "f"); $second = array_column($arr, "s");

    array_multisort($first, SORT_ASC, $second, SORT_DESC, $arr);
3年前 评论

file $dataArray = sortArrByManyField($result,'order_sort',SORT_DESC,'click_count',SORT_DESC,'distances',SORT_ASC);

3年前 评论
╰ゝSakura 3年前