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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 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年前

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