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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 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'],
    ]
*/
2个月前 评论

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

file

file

2个月前 评论

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

2个月前 评论

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

2个月前 评论
小猪蹄子 2个月前
轻描淡写 (作者) (楼主) 2个月前

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