Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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

Alexandre Babeanu
Alexandre Babeanu
10,946 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,946 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,946 Points

Answer is

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

Jason Wist
Jason Wist
2,482 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,946 Points

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

Jason Wist
Jason Wist
2,482 Points

Ah.

I've never worked through the exercise.

I guess they force the habit early.