Menu
Coddy logo textTech

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 bidimensionais usando índices numéricos, você também pode criar dados mais estruturados usando arrays associativos tanto no nível principal quanto dentro dos arrays aninhados. Essa abordagem utiliza 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 onde cada elemento possui 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 misturar abordagens, usando índices numéricos para o array principal enquanto mantém arrays associativos internamente:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

Esta 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 string tornam seu código autodocumentado e muito mais fácil de manter do que lembrar posições numéricas.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

challenge icon

Desafio

Fácil

Você receberá uma entrada: um array associativo 2D representando um inventário de produtos em formato JSON. Cada produto possui um ID de produto único como chave, e o valor é um array associativo contendo o "name" e o "price" do produto. Leia a entrada, converta a string JSON em um array associativo 2D, itere por 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 de entrada: Uma linha contendo um objeto JSON representando 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]

Folha de consulta

Você pode criar arrays associativos 2D usando chaves de string tanto no nível principal quanto dentro de arrays aninhados:

<?php
$students = [
    "alice" => [
        "name" => "Alice Johnson",
        "grade" => 92
    ],
    "bob" => [
        "name" => "Bob Smith", 
        "grade" => 87
    ]
];
?>

Você também pode misturar abordagens, usando índices numéricos para o array principal com arrays associativos dentro:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

Chaves de string tornam seus dados autodocumentados e mais fáceis de manter do que posições numéricas.

Experimente você mesmo

<?php
// Lê a entrada JSON
$input = fgets(STDIN);

// Converte JSON para um array associativo
$inventory = (array)json_decode($input, true);

// TODO: Escreva seu código abaixo para iterar pelo inventário e imprimir cada produto


?>
quiz iconTeste seus conhecimentos

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