How to remove duplicates in collection?

前端 未结 3 1691
逝去的感伤
逝去的感伤 2021-02-12 11:56

I have collection in Laravel:

Collection {#450 ▼
  #items: array:2 [▼
    0 => Announcement {#533 ▶}
    1 => Announcement {#553 ▶}
  ]
}

3条回答
  •  后悔当初
    2021-02-12 12:24

    $collection = collect([
        ['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'],
        ['name' => 'iPhone 5', 'brand' => 'Apple', 'type' => 'phone'],
        ['name' => 'Apple Watch', 'brand' => 'Apple', 'type' => 'watch'],
        ['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'],
        ['name' => 'Galaxy Gear', 'brand' => 'Samsung', 'type' => 'watch'],
    ]);
    

    Then let's say you want the brand to be unique, in this case you should only get two brands 'Apple', and 'Samsung'

    $unique = $collection->unique('brand');
    
    $unique->values()->all();
    /*
        [
            ['name' => 'iPhone 6', 'brand' => 'Apple', 'type' => 'phone'],
            ['name' => 'Galaxy S6', 'brand' => 'Samsung', 'type' => 'phone'],
        ]
    */
    

    This is taken from https://laravel.com/docs/master/collections#method-unique

提交回复
热议问题