Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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
Php 通过动态ID数组的Laravel排序集合_Php_Laravel_Laravel 5_Eloquent_Laravel 5.2 - Fatal编程技术网

Php 通过动态ID数组的Laravel排序集合

Php 通过动态ID数组的Laravel排序集合,php,laravel,laravel-5,eloquent,laravel-5.2,Php,Laravel,Laravel 5,Eloquent,Laravel 5.2,我有以下几点 $people = array(5, 2, 9, 6, 11); $people_collection = People::find($people); 但是,当我转储并死亡时,$people\u collection集合是按ID ASC排序的,我如何保持集合的顺序与$people数组的顺序相同?Collections有一个sortBy函数,该函数接受自定义回调: $people_collection = People::find($people) ->sortBy

我有以下几点

$people = array(5, 2, 9, 6, 11);

$people_collection = People::find($people);

但是,当我转储并死亡时,
$people\u collection
集合是按ID ASC排序的,我如何保持集合的顺序与
$people
数组的顺序相同?

Collections有一个sortBy函数,该函数接受自定义回调:

$people_collection = People::find($people)
   ->sortBy(function($person, $key) use($people) {
         return array_search($person->id, $people);
      });

请参阅。

这是因为
find
在内部调用mysql IN子句,该子句按传递的ID的升序返回行。您可以手动对数组排序,也可以使用Jannie解释的方法。