Ordenar arrays asociativos por clave
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 23 de 68.
Si bien ordenar por valores es útil, a veces es necesario organizar los arrays asociativos por sus claves en su lugar. PHP proporciona ksort() para el orden de claves ascendente y krsort() para el orden de claves descendente, manteniendo ambos las relaciones clave-valor cruciales.
Aquí se muestra cómo ksort() organiza un array alfabéticamente por sus claves:
<?php
$settings = [
"theme" => "dark",
"language" => "english",
"notifications" => "enabled",
"auto_save" => "on"
];
ksort($settings);
print_r($settings);
// Resultado: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>Observe cómo las claves están ahora en orden alfabético de la A a la Z, mientras que cada nombre de configuración permanece correctamente emparejado con su valor. Esto es particularmente útil cuando desea mostrar opciones de configuración o elementos de menú de una manera predecible y organizada.
Para el orden alfabético inverso, krsort() funciona de manera similar pero ordena las claves de la Z a la A. Ambas funciones modifican el array original directamente, al igual que otras funciones de ordenación de PHP, lo que las hace eficientes para organizar datos donde el orden de las claves importa más que el orden de los valores.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilRecibirás una entrada: un array asociativo de nombres de departamentos y sus asignaciones presupuestarias en formato JSON. Lee la entrada, convierte la cadena JSON en un array, utiliza ksort() para ordenar los departamentos alfabéticamente por sus claves en orden ascendente y muestra el array ordenado utilizando print_r().
Formato de entrada: Una línea que contiene un objeto JSON con los nombres de los departamentos como claves y los montos presupuestarios como valores (ejemplo: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})
Resultado esperado: El array asociativo ordenado en orden alfabético ascendente por los nombres de los departamentos (claves), mostrado utilizando print_r()
Hoja de referencia
PHP proporciona las funciones ksort() y krsort() para ordenar arrays asociativos por sus claves manteniendo las relaciones clave-valor.
ksort() ordena las claves en orden alfabético ascendente (de la A a la Z):
ksort($array);krsort() ordena las claves en orden alfabético descendente (de la Z a la A):
krsort($array);Ambas funciones modifican el array original directamente:
<?php
$settings = [
"theme" => "dark",
"language" => "english",
"notifications" => "enabled",
"auto_save" => "on"
];
ksort($settings);
print_r($settings);
// Salida: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>Pruébalo tú mismo
<?php
// Leer entrada
$input = fgets(STDIN);
// Convertir JSON a array
$departments = (array)json_decode($input, true);
// TODO: Escribe tu código a continuación para ordenar el array por claves
// Mostrar el resultado
print_r($departments);
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación