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 arreglos bidimensionales usando índices numéricos, también puedes crear datos más estructurados utilizando arreglos asociativos tanto en el nivel principal como dentro de los arreglos anidados. Este enfoque utiliza claves de cadena en lugar de números, lo que hace que tus datos sean mucho más descriptivos y fáciles de entender.

Aquí tienes cómo crear un array asociativo bidimensional donde 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, utilizando í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 poderosa para organizar datos complejos como perfiles de usuario, catálogos de productos o cualquier escenario en el que necesites almacenar múltiples propiedades relacionadas para cada elemento. Las claves de cadena hacen que tu código sea autodocumentado y mucho más fácil de mantener que recordar posiciones numéricas.

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 2D que representa un inventario de productos en formato JSON. Cada producto tiene un ID de producto único como clave, y el valor es un array asociativo que contiene el "name" y el "price" del producto. Lee la entrada, convierte la cadena JSON en un array asociativo 2D, itera a través de todos los productos e imprime la información de cada producto en 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 en el formato ID: [product_id] - Name: [name] - Price: $[price]

Hoja de referencia

Puedes crear arreglos asociativos bidimensionales utilizando claves de cadena tanto en el nivel principal como dentro de los arreglos anidados:

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

También puedes combinar enfoques, utilizando índices numéricos para el arreglo principal con arreglos asociativos en su interior:

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

Las claves de cadena hacen que tus datos sean autodocumentados y más fáciles de mantener que las posiciones numéricas.

Pruébalo tú mismo

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

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

// TODO: Escribe tu código a continuación 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