PHP Build a Basic PHP Website (2018) Listing and Sorting Inventory Items Array Keys

Why is my code wrong?

In my understanding of the excercise I am done, I don't know why it's wrong?


$books["978-0743261690"] = "Gilgamesh";
$books["978-0060931957"] = "The Odyssey";
$books["978-0192840509"] = "Aesop's Fables";
$books["978-0520227040"] = "Mahabharta";
$books["978-0393320978"] = "Beowulf";

    <title>Five Great Books</title>
    <h1>Five Great Books</h1>
        <?php foreach($books as $key => $book) { $isbn = $key; ?>
            <li><?php echo $book; ?></li>
        <?php } ?>

2 Answers

Spenser Hale
Spenser Hale
18,330 Points

Hello Rodrigo Vega,

TLDR: Simply change $key to $isnb and remove your extra assignment and you will pass the step.

<?php foreach($books as $isbn => $book) { ?>
    <li><?php echo $book; ?></li>
<?php } ?>

For step one, you are assigned to name the key variable $isnb. I see you understand the foreach loop $key and $value placement. However, in the challenge, $value is replaced with $book, and just like value, you also can rename it, ie $key to $isnb.

I do want to mention what you wrote would work in practice however is it less efficient since the foreach can reassign $isnb for you each loop and instead you have extra variable assignment to accomplish.

Of course! Thank you very much I got confused in the wording of the excercise.

Spenser Hale
Spenser Hale
18,330 Points

No worries Rodrigo, glad I was able to help. I would be useful to the community if you select my answer as best answer because currently this discussion is still marked unresolved, and point others to the solution.