📜  laravel collection unique (1)

📅  最后修改于: 2023-12-03 15:32:33.097000             🧑  作者: Mango

Laravel Collection Unique

Laravel Collection Unique 是 Laravel 框架中的一个强大的工具,用于从给定的集合中获取唯一值。该工具使得处理大量数据变得更加容易和高效。

用法

我们可以从任何 Laravel 集合使用 unique() 来获取唯一值,例如:

$collection = collect([1, 2, 2, 3, 4, 4, 5]);
$unique = $collection->unique();

在上面的代码中,$unique 将包含唯一值 [1, 2, 3, 4, 5]

你也可以根据对象的某个属性去除重复项。例如:

class User
{
    public $name;
    public $email;

    public function __construct($name, $email)
    {
        $this->name = $name;
        $this->email = $email;
    }
}

$users = collect([
    new User('John Doe', 'john@example.com'),
    new User('Jane Doe', 'jane@example.com'),
    new User('John Doe', 'john@example.com')
]);
$unique = $users->unique('email');

上面的代码中通过 email 去除了 $users 中的重复项。

自定义去除重复的条件

Laravel Collection Unique 可以接受一个回调函数,该函数会对集合中的每个项进行处理,你可以根据这个回调函数的返回值来去除重复项。例如:

$products = collect([
    ['name' => 'Desk', 'price' => 200],
    ['name' => 'Chair', 'price' => 100],
    ['name' => 'Desk', 'price' => 300],
    ['name' => 'Chair', 'price' => 150],
]);

$unique = $products->unique(function ($product) {
    return $product['name'] . $product['price'];
});

在上面的代码中,我们根据 $product 中的名称和价格来处理每个项。

总结

Laravel Collection Unique 是 Laravel 集合中的一个非常实用的工具,可以方便地去除重复值并支持自定义去重规则。无论是处理大量数据还是简单的去重,使用 Laravel Collection Unique 都将使你的开发工作更加容易。