
Cómo encontrar elementos duplicados en colecciones de Laravel
- Publicado el 29 enero, 2025
- Palabras: 63
¿Necesitas encontrar elementos duplicados en tu colección? Los métodos "duplicates" de Laravel ofrecen una forma sencilla de encontrar valores repetidos, ya sean tipos simples o atributos anidados.

#Uso básico
El método duplicates recupera y devuelve valores duplicados de la colección:
// Regular duplicate checking
$collection = collect(['a', 'b', 'A', 'a', 'B', 'b']);
$duplicates = $collection->duplicates();
// Result: [3 => 'a', 5 => 'b'] // Case-insensitive
// Strict duplicate checking
$strictDuplicates = $collection->duplicatesStrict();
// Result: [3 => 'a', 5 => 'b'] // Case-sensitive
#Trabajar con arrays y objetos
Compruebe si hay duplicados en atributos específicos:
$employees = collect([
['email' => 'abigail@example.com', 'position' => 'Developer'],
['email' => 'james@example.com', 'position' => 'Designer'],
['email' => 'victoria@example.com', 'position' => 'Developer']
]);
$duplicatePositions = $employees->duplicates('position');
// Result: [2 => 'Developer']
#Ejemplo práctico
A continuación se explica cómo podría usarlo en un servicio de validación de datos:
class DataValidator
{
public function validateUniqueEmails(Collection $users)
{
// Regular duplicate check for emails
$duplicates = $users->duplicates('email');
if ($duplicates->isNotEmpty()) {
throw new ValidationException(
"Duplicate emails found: " .
$duplicates->implode(', ')
);
}
}
public function findDuplicateTags(Collection $tags)
{
return [
'case_insensitive' => $tags->duplicates(),
'case_sensitive' => $tags->duplicatesStrict()
];
}
public function checkUniqueTags(Collection $posts)
{
$tags = collect([
'php', 'PHP', 'php', 'laravel', 'Laravel', 'LARAVEL'
]);
return [
'basic_duplicates' => $tags->duplicates(),
// Result: [2 => 'php', 4 => 'Laravel']
'case_sensitive_duplicates' => $tags->duplicatesStrict(),
// Result: [2 => 'php']
];
}
}
Los métodos duplicados facilitan la identificación de valores repetidos en sus colecciones, lo que ayuda a garantizar la integridad y la validación de los datos.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión