Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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

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.

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.