Menu
Coddy logo textTech

Arreglos asociativos 2D

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy. Lección 31 de 68.

Aunque has estado trabajando con matrices 2D utilizando índices numéricos, también puedes crear datos más estructurados usando matrices asociativas tanto en el nivel principal como dentro de las matrices anidadas. Este enfoque utiliza claves de texto en lugar de números, lo que hace que tus datos sean mucho más descriptivos y fáciles de entender.

Así es como creas un array asociativo bidimensional en el que cada elemento tiene claves de cadena significativas:

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

También puedes combinar enfoques, usando índices numéricos para el array principal mientras mantienes arrays asociativos en su interior:

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

Esta estructura es increíblemente potente para organizar datos complejos, como perfiles de usuario, catálogos de productos o cualquier situación en la que necesites almacenar varias propiedades relacionadas para cada elemento. Las claves de cadena hacen que tu código se documente por sí mismo y sea mucho más fácil de mantener que recordar posiciones numéricas.

challenge icon

Desafío

Fácil

Recibirás una entrada: una matriz asociativa bidimensional que representa un inventario de productos en formato JSON. Cada producto tiene un ID de producto único como clave, y el valor es una matriz asociativa que contiene el "name" y el "price" del producto. Lee la entrada, convierte la cadena JSON en una matriz asociativa bidimensional, recorre todos los productos e imprime la información de cada producto con el formato: ID: [product_id] - Name: [name] - Price: $[price]

Cada producto debe imprimirse en una línea separada.

Formato de entrada: Una línea que contiene un objeto JSON que representa el inventario de productos (ejemplo: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})

Salida esperada: Cada producto impreso en una línea separada con el formato ID: [product_id] - Name: [name] - Price: $[price]

Pruébalo tú mismo

<?php
// Lee la entrada JSON
$input = fgets(STDIN);

// Convierte JSON a array asociativo
$inventory = (array)json_decode($input, true);

// TODO: Escribe tu código debajo para iterar a través del inventario e imprimir cada producto


?>
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

Practica por tu cuenta: Compilador de PHP online