Arreglos Asociativos (Associative Arrays)

Sigamos con las matrices un poco más. En este episodio, aprenderá la sintaxis para acceder a elementos individuales dentro de una matriz. También aprenderá sobre matrices asociativas, que le permiten asociar una clave con cada valor.

Que aprenderemos

  • Array Access
  • Key-Value Pairs
  • Data

Para poder acceder a elementos individuales dentro de un arreglo. Por ejemplo para recuperar el primer libro del arreglo.

<p>
    <?= $books[0] ?>
</p> 

Ahora si deseamos tener mas datos asociados a cada libro. Podemos usar arreglos dentro de arreglos.

<?php 
    $books = [
        [],
        []
    ];
?> 

Ahora vamos agregar una asociación key:value pair!

<?php
    $books = [
        [
            'name' => 'Do Androids Dream of Electric Sheep?',
            'author' => 'Philip K. Dick',
            'purchaseUrl' => 'http://example1.com'
        ],
        [
            'name' => 'Four Past Midnight',
            'author' => 'Stephen King',
            'purchaseUrl' => 'http://example2.com'
        ],
        [
            'name' => 'Project Hail Mary',
            'author' => 'Andy Weir',
            'purchaseUrl' => 'http://example3.com'
        ]
    ];
?>

<ul>
    <?php foreach ($books as $book) :?>
        <li><?= $book['name']; ?></li>
    <?php endforeach; ?>
</ul> 

Ahora para mejorarlo un poco e incluir los links a los Urls

<ul>
    <?php foreach ($books as $book) :?>
        <li>
            <a href="<?= $book['purchaseUrl'] ?>">
                <?= $book['name']; ?>
            </a>
        </li>
    <?php endforeach; ?>
</ul>

Tarea: Amplíe la lista de libros del ejemplo de este episodio para incluir y mostrar también el año de lanzamiento inmediatamente después del título del libro.

<body>

    <h1>Libros Recomendados</h1>

    <?php
        $books = [
                    [
                        'name' => 'Do Androids Dream of Electric Sheep?',
                        'author' => 'Philip K. Dick',
                        'purchaseUrl' => 'http://example1.com',
                        'Publication_date' => 1968,
                    ],

                    [
                        'name' => 'Four Past Midnight',
                        'author' => 'Stephen King',
                        'purchaseUrl' => 'http://example2.com',
                        'Publication_date' => 1990,
                    ],

                    [
                        'name' => 'Project Hail Mary',
                        'author' => 'Andy Weir',
                        'purchaseUrl' => 'http://example3.com',
                        'Publication_date' => 2021,
                    ]
                ];
    ?>

    <ul>
        <?php foreach ($books as $book) :?>
            <li>
                <a href="<?= $book['purchaseUrl'] ?>">
                    // <?= $book['name']." "."(".$book['Publication_date'].")"; ?>
                    <?= $book['name'] ?> (<?= $book['Publication_date']?>)
                </a>
            </li>
        <?php endforeach; ?>
    </ul>

</body> 

Listo!