【问题标题】:Laravel Sort Collection By Dynamic ID array [duplicate]Laravel 按动态 ID 数组排序集合
【发布时间】:2016-11-29 04:53:40
【问题描述】:

我有以下...

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

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

但是当我转储并死去$people_collection 时,集合按ID ASC 排序,我怎样才能保持集合与$people 数组的顺序相同?

【问题讨论】:

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

标签: php laravel laravel-5 eloquent laravel-5.2


【解决方案1】:

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

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

the docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2018-05-04
    • 2021-06-27
    • 2016-07-10
    • 2021-09-20
    • 2012-06-28
    • 2013-09-18
    相关资源
    最近更新 更多