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

Exercise is bugged

This exercise is totally bugged, the preview doesn't work, and it won't solve. is this from my computer or from treehouse

index.php
<?php

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

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

you dont seem to be doing anythig with $isbn. Try $isbn=$book in order to assign the key value to the variable...

Thanks Stu I was not reading the output correctly it said that $isbn has to be declared in the foreach loop... In my opinion it should say in the DECLARATION of the foreach loop. The exercise solves when you write.

foreach($books as $isbn => $book)

3 Answers

Answer is

foreach($books as $isbn => $book)

"In my opinion it should say in the DECLARATION of the foreach loop"

Also remember that if people are just learning PHP/Programming they might have issues wrapping their heads around key value pairs and looping with them as iterators.

So while

foreach ($books as $isbn => $book) {
    ...
} 

is great and makes more sense for one person

foreach ($books as $key => $value) {
    $isbn = $key;
    ...
 }

this way might make it easier for people to wrap their heads around the idea that the $key can double as storing info one would want to display in a view.

Yes except your second example will not be accepted as the correct answer... :/

Ah.

I've never worked through the exercise.

I guess they force the habit early.