Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 雄辩的集合按数组排序传入回调_Arrays_Laravel_Sorting_Eloquent - Fatal编程技术网

Arrays 雄辩的集合按数组排序传入回调

Arrays 雄辩的集合按数组排序传入回调,arrays,laravel,sorting,eloquent,Arrays,Laravel,Sorting,Eloquent,我有这样的收藏 $collection = [ 1 => [ ... ], 2 => [ ... ], 3 = [ ... ] ]; $collection->sortBy(function($unit, $id) use ($sort) { return ...; }) 并按我要排序的内容进行数组 $sort =[ 3, 1, 2 ]; 我正在努力实现如何用

我有这样的收藏

$collection = [
    1 => [
        ...
    ],
    2 => [
        ...
    ],
    3 = [
        ...
    ]
];
$collection->sortBy(function($unit, $id) use ($sort) {
     return ...;
})
并按我要排序的内容进行数组

$sort =[
    3, 1, 2
];
我正在努力实现如何用这样的代码对我的
$collection
进行排序

$collection = [
    1 => [
        ...
    ],
    2 => [
        ...
    ],
    3 = [
        ...
    ]
];
$collection->sortBy(function($unit, $id) use ($sort) {
     return ...;
})

但我自己也不知道,我已经有了一个工作示例,我只需要对所有$collection元素进行排序,然后按照我“正常”排序的方式为它们分配一些int,但如果可以按另一个数组排序而不给集合元素分配额外的键,这对我来说仍然很有趣。

你的意思是
krsort


Laravel集合包括一个
map()
方法,用于执行类似操作

也值得一看
mapWithKeys()
方法

这些方法允许您传入集合并对其进行迭代,将每次迭代传递给您定义的回调函数。

解决方案是

$sort
    ->mapWithKeys(
        function($id) use ($collection) {
            return [
                $id => $collection->get('id', $id)
            ];
        }
    )

抱歉,也许我的问题有点困惑,但集合已经按键排序,我希望它按另一个数组排序,其中键是3,1,2,而不是1,2,3:)@Nerfair有任何排序条件吗?按$sort数组id排序的集合是什么