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.