Menu
Coddy logo textTech

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.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Recibirá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);
?>
quiz iconPonte a prueba

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