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

Alexandre Babeanu
Alexandre Babeanu
10,947 Points

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>
Stu Parker
Stu Parker
4,814 Points

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

Alexandre Babeanu
Alexandre Babeanu
10,947 Points

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

Alexandre Babeanu
Alexandre Babeanu
10,947 Points

Answer is

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

Jason Wist
Jason Wist
2,483 Points

"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.

Alexandre Babeanu
Alexandre Babeanu
10,947 Points

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

Jason Wist
Jason Wist
2,483 Points

Ah.

I've never worked through the exercise.

I guess they force the habit early.