【问题标题】:How can I make a collection unique?我怎样才能使一个集合独一无二?
【发布时间】:2018-02-10 15:02:01
【问题描述】:

这是我的代码:

$products = Products::orderBy('id')->get();

这是我的桌子:

// products
+----+----------+----------+
| id |  brand   |   name   |
+----+----------+----------+
| 1  | Cisco    | SF300-48 |
| 2  | Mikrotik | RB260GS  |
| 3  | Mikrotik | PoEhEX   |
+----+----------+----------+

这是我的代码:

foreach($products as $product){
    echo $product->brand.PHP_EOL;
}

当前结果:

/* Cisco
   Mikrotik 
   Mikrotik 

预期结果:

/* Cisco
   Mikrotik 

看到了吗?我需要使 laravel 集合独一无二。 array_unique() 用于数组,我不能在这里使用它。知道我该怎么做吗?

注意到我需要所有的名字。 (我的意思是我需要这些值 SF300-48RB260GSPoEhEX。所以我也不能在查询中使用DISTINCT

【问题讨论】:

标签: php mysql laravel unique


【解决方案1】:

使用unique() 方法:

$products->unique('brand')

【讨论】:

  • 哦..最干净的答案。
  • 哈哈,71k 业力,这可能是你写过的最简单的答案,Алексей。 :p
  • @MartinAJ 如果您说的是@foreach($products->unique('brand') as $product) 之类的东西,那么是的,完全没问题。
【解决方案2】:
foreach($products->pluck('brand')->unique() as $brand){
    echo $brand . PHP_EOL;
}

【讨论】:

    猜你喜欢
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 2012-10-04
    • 1970-01-01
    • 2019-09-01
    • 2014-01-03
    相关资源
    最近更新 更多