【问题标题】:Laravel how to sort collection by specific value and idLaravel如何按特定值和ID对集合进行排序
【发布时间】:2021-03-13 01:49:02
【问题描述】:

如何按特定名称和 ID 对集合进行排序。 我需要对记录进行排序,其中 name = X 应该是顺序中的第一个,其余的应该按 id 排序。

产品型号

|----|------|
| id | Name |
|----|------|
|  1 | a    |
|  2 | x    |
|  3 | b    |
|  4 | c    |
|  5 | x    |
|  6 | z    |
|----|------|

我试过这段代码,但没有用。

Product::orderBy('id', 'asc')->get()

【问题讨论】:

    标签: php mysql laravel laravel-5 eloquent


    【解决方案1】:

    您可以使用集合及其方法...这里我使用的是数组...

    试试这个...

    $product = Product::orderBy('id', 'asc')->get();
    $results =array_map("moveToFirst",$product);
    
    function moveToFirst($product){
      $otherIndex = array_search('x',$product);
      if($otherIndex !== false){
          $v = $product[$otherIndex];
          unset($product[$otherIndex]);
          array_unshift($product , $v);
       }
      
      return $product;
    }
    
    
    
    |---------------------|------------------|
    |          id         |        Name      |
    |---------------------|------------------|
    |          5          |         x        |
    |---------------------|------------------|
    |          2          |         x        |
    |---------------------|------------------|
    |          1          |         a        |
    |---------------------|------------------|
    |          3          |         b        |
    |---------------------|------------------|
    |          4          |         c        |
    |---------------------|------------------|
    |          6          |         z        |
    |---------------------|------------------|
    

    【讨论】:

    • 对于大量数据是否可取?
    • 顺便说一句,我想使用查询对记录进行排序,而不是使用集合而不是使用函数对其进行排序。
    • 控制器中的php数组排序
    • 我认为这是从控制器处理的好方法,因为主要由控制器处理逻辑......然后将数据发送到视图(刀片)并显示它
    • 如果您使用 jquery 处理,则需要将 php 数组存储到 jquery 数组,然后应用相同的过程,但将 php 函数替换为 jquery 数组函数,但与 php 相比有点复杂
    猜你喜欢
    • 2021-01-15
    • 2021-03-08
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2017-05-02
    • 2020-03-08
    相关资源
    最近更新 更多