辅助函数 Arr::sort () 好像并没有排序

刚刚看辅助函数的时候看到 Arr::sort()

Arr::sort() 函数根据数组的值对数组进行排序

use Illuminate\Support\Arr;

$array = ['Desk', 'Table', 'Chair'];

$sorted = Arr::sort($array);

// ['Chair', 'Desk', 'Table']

下面是我测试的代码

public function index(){
        $array = ['Desk', 'Table', 'Chair'];
        $sorted = Arr::sort($array);
        return $sorted;
    }

返回值

{
    0: "Desk",
    1: "Table",
    2: "Chair"
}

为什么没有像文档那样排序?是在6.0上面跑的

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

根据给定闭包返回的结果对数组进行排序是正确的

use Illuminate\Support\Arr;

$array = [
    ['name' => 'Desk'],
    ['name' => 'Table'],
    ['name' => 'Chair'],
];

$sorted = array_values(Arr::sort($array, function ($value) {
    return $value['name'];
}));

/*
    [
        ['name' => 'Chair'],
        ['name' => 'Desk'],
        ['name' => 'Table'],
    ]
*/
4年前 评论

我试了一下没有问题呀。 版本:Laravel 6.0

file

file

4年前 评论

其实已经排序了,你可以dd打断看看,是因为你的下标是数字,通过return返回(接口返回,不是说的方法调用类似的return返回)的时候,又自动从0开始排序了,并不是Arr::sort()没有排序

4年前 评论

file :joy: :joy:我的没有排 dd打断也是没排

4年前 评论
小猪蹄子 4年前
轻描淡写 (作者) (楼主) 4年前

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