Ordenar Arrays Associativos por Chave
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 23 de 68.
Embora a ordenação por valores seja útil, às vezes você precisa organizar arrays associativos por suas chaves. O PHP fornece ksort() para ordem crescente de chaves e krsort() para ordem decrescente de chaves, ambos mantendo as relações cruciais entre chave e valor.
Veja como o ksort() organiza um array em ordem alfabética por suas chaves:
<?php
$settings = [
"theme" => "dark",
"language" => "english",
"notifications" => "enabled",
"auto_save" => "on"
];
ksort($settings);
print_r($settings);
// Saída: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>Observe como as chaves agora estão em ordem alfabética de A a Z, enquanto cada nome de configuração permanece devidamente emparelhado com seu valor. Isso é particularmente útil quando você deseja exibir opções de configuração ou itens de menu de maneira previsível e organizada.
Para ordem alfabética reversa, krsort() funciona de forma semelhante, mas ordena as chaves de Z a A. Ambas as funções modificam o array original diretamente, assim como outras funções de ordenação do PHP, tornando-as eficientes para organizar dados onde a ordem das chaves importa mais do que a ordem dos valores.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Desafio
FácilVocê receberá uma entrada: um array associativo de nomes de departamentos e suas alocações orçamentárias no formato JSON. Leia a entrada, converta a string JSON em um array, use ksort() para ordenar os departamentos em ordem alfabética crescente por suas chaves e imprima o array ordenado usando print_r().
Formato de entrada: Uma linha contendo um objeto JSON com nomes de departamentos como chaves e valores de orçamento como valores (exemplo: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})
Saída esperada: O array associativo ordenado em ordem alfabética crescente pelos nomes dos departamentos (chaves), exibido usando print_r()
Folha de consulta
O PHP fornece as funções ksort() e krsort() para ordenar arrays associativos por suas chaves, mantendo as relações chave-valor.
ksort() ordena as chaves em ordem alfabética crescente (A a Z):
ksort($array);krsort() ordena as chaves em ordem alfabética decrescente (Z a A):
krsort($array);Ambas as funções modificam o array original diretamente:
<?php
$settings = [
"theme" => "dark",
"language" => "english",
"notifications" => "enabled",
"auto_save" => "on"
];
ksort($settings);
print_r($settings);
// Saída: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>Experimente você mesmo
<?php
// Ler a entrada
$input = fgets(STDIN);
// Converter JSON para array
$departments = (array)json_decode($input, true);
// TODO: Escreva seu código abaixo para ordenar o array pelas chaves
// Exibir o resultado
print_r($departments);
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard