辅助函数 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上面跑的

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《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天前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!