Arrays Associativos 2D
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy. Lição 31 de 68.
Embora você tenha trabalhado com arrays 2D usando índices numéricos, também pode criar dados mais estruturados usando arrays associativos tanto no nível principal quanto dentro dos arrays aninhados. Essa abordagem usa chaves de string em vez de números, tornando seus dados muito mais descritivos e fáceis de entender.
Veja como criar um array associativo 2D em que cada elemento tem chaves de string significativas:
<?php
$students = [
"alice" => [
"name" => "Alice Johnson",
"grade" => 92
],
"bob" => [
"name" => "Bob Smith",
"grade" => 87
],
"charlie" => [
"name" => "Charlie Brown",
"grade" => 95
]
];
?>Você também pode combinar abordagens, usando índices numéricos para a array principal e mantendo arrays associativos dentro dela:
<?php
$users = [
["username" => "john_doe", "email" => "john@example.com"],
["username" => "jane_smith", "email" => "jane@example.com"]
];
?>Essa estrutura é incrivelmente poderosa para organizar dados complexos, como perfis de usuários, catálogos de produtos ou qualquer cenário em que você precise armazenar várias propriedades relacionadas para cada item. As chaves de texto tornam seu código autoexplicativo e muito mais fácil de manter do que lembrar posições numéricas.
Desafio
FácilVocê receberá uma entrada: uma matriz associativa 2D que representa um inventário de produtos no formato JSON. Cada produto tem um ID de produto exclusivo como chave, e o valor é uma matriz associativa contendo o "name" e o "price" do produto. Leia a entrada, converta a string JSON em uma matriz associativa 2D, percorra todos os produtos e imprima as informações de cada produto no formato: ID: [product_id] - Name: [name] - Price: $[price]
Cada produto deve ser impresso em uma linha separada.
Formato da entrada: Uma linha contendo um objeto JSON que representa o inventário de produtos (exemplo: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})
Saída esperada: Cada produto impresso em uma linha separada no formato ID: [product_id] - Name: [name] - Price: $[price]
Experimente você mesmo
<?php
// Ler a entrada JSON
$input = fgets(STDIN);
// Converter JSON para array associativo
$inventory = (array)json_decode($input, true);
// TODO: Escreva seu código abaixo para iterar pelo inventário e imprimir cada produto
?>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 LeaderboardPratique por conta própria: Compilador de PHP online