Изучение коллекции Laravel: получение уникальных значений — методы и примеры кода

Laravel Collection — это мощный служебный класс, который обеспечивает выразительный способ работы с массивами данных в PHP. Одной из распространенных задач при работе с коллекциями является извлечение только уникальных значений из набора данных. В этой статье мы рассмотрим различные методы, доступные в коллекции Laravel для достижения этой цели, а также примеры кода.

Метод 1: unique()
Метод unique()возвращает новую коллекцию, содержащую только уникальные значения из исходной коллекции. Для определения уникальности используется строгое сравнение.

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

Метод 2: uniqueStrict()
Метод uniqueStrict()работает аналогично unique(), но он выполняет строгое сравнение, включая тип данных, для определения уникальности.

$collection = collect([1, '1', 2, 3, 4, 4, 5]);
$uniqueValues = $collection->uniqueStrict();
// Output: [1, '1', 2, 3, 4, 5]

Метод 3: uniqueWith()
Метод uniqueWith()позволяет указать пользовательскую функцию обратного вызова для определения уникальности на основе определенных критериев. Функция обратного вызова должна возвращать уникальный идентификатор для каждого элемента.

$collection = collect([
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane'],
    ['id' => 3, 'name' => 'John'],
]);
$uniqueValues = $collection->uniqueWith(function ($item) {
    return $item['name'];
});
// Output: [['id' => 1, 'name' => 'John'], ['id' => 2, 'name' => 'Jane']]

Метод 4: uniqueWithStrict()
Метод uniqueWithStrict()работает аналогично uniqueWith(), но он выполняет строгое сравнение для определения уникальности.

$collection = collect([
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane'],
    ['id' => 3, 'name' => 'john'],
]);
$uniqueValues = $collection->uniqueWithStrict(function ($item) {
    return $item['name'];
});
// Output: [['id' => 1, 'name' => 'John'], ['id' => 2, 'name' => 'Jane'], ['id' => 3, 'name' => 'john']]

В этой статье мы рассмотрели несколько методов, доступных в коллекции Laravel для получения уникальных значений. Мы рассмотрели такие методы, как unique(), uniqueStrict(), uniqueWith()и uniqueWithStrict(), каждый из которых служит разным целям в зависимости от уникальности. необходимые критерии. Понимание этих методов позволит вам эффективно работать с коллекциями в Laravel и расширить возможности манипулирования данными.

Не забудьте использовать соответствующий метод в зависимости от вашего конкретного варианта использования, чтобы эффективно извлекать уникальные значения из ваших коллекций Laravel.