Ordenar claves en una colección en Laravel usando sortKeysUsing
- Publicado el 30 diciembre, 2024
- Palabras: 69
Esta poderosa característica te permite personalizar la clasificación de claves con cualquier función de comparación, perfecta para la clasificación natural y la lógica de ordenamiento personalizada.

#Uso básico
El método sortKeysUsing ordena la colección por las claves del array asociativo subyacente mediante una callback. Veamos su uso:
$collection = collect([
'ID' => 22345,
'first' => 'John',
'last' => 'Doe',
]);
$sorted = $collection->sortKeysUsing('strnatcasecmp');
#Ejemplo práctico
A continuación se muestra una implementación práctica para ordenar las opciones de configuración:
class ConfigurationManager
{
public function getOrderedSettings(array $settings)
{
return collect($settings)
->sortKeysUsing(function ($a, $b) {
// Sort priority prefixes first
$isPriorityA = str_starts_with($a, 'priority_');
$isPriorityB = str_starts_with($b, 'priority_');
if ($isPriorityA && !$isPriorityB) return -1;
if (!$isPriorityA && $isPriorityB) return 1;
// Then sort by category
$categoryA = explode('_', $a)[0];
$categoryB = explode('_', $b)[0];
if ($categoryA !== $categoryB) {
return $categoryA <=> $categoryB;
}
// Finally, natural case-insensitive sort
return strnatcasecmp($a, $b);
});
}
}
// Usage
$settings = [
'email_host' => 'smtp.example.com',
'priority_notifications' => true,
'app_name' => 'My App',
'priority_maintenance' => false,
'email_port' => 587,
];
$manager = new ConfigurationManager();
$ordered = $manager->getOrderedSettings($settings);
El método sortKeysUsing es perfecto para situaciones en las que necesita un control preciso sobre cómo se ordenan las claves de colección, especialmente cuando se trata de configuraciones, campos de formulario o cualquier dato asociativo.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión