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 Simple PHP Application Integrating with PayPal Array Keys

Code Challenge

I'm having a really hard time with this code challenge. Maybe it is just the wording that is confusing me. Challenge task 1 of 2

The array below contains a list of books. Each element in the array has the book’s title as its value and the ISBN as its key. Right now, the page is only displaying the book titles in the browser. In this code challenge, we will modify the page to also display each book’s ISBN. First, we need to make the keys from the books array accessible inside the foreach loop. Modify the foreach command so that, as it loops through the books, it loads the ISBN for each book into a working variable called $isbn.

I got this code to list the Title and the ISBN But I don't think it is doing it in the way that the code challenge is looking for:

<?php $books = array(); $books["978-0743261690"] = array( "title" => "Gilgamesh", "isbn" => "978-0743261690" ); $books["978-0060931957"] = array( "title" => "The Odyssey", "isbn" => "978-0060931957" ); $books["978-0192840509"] = array( "title" => "Aesop's Fables", "isbn" => "978-0192840509" ); $books["978-0520227040"] = array( "title" => "Mahabharta", "isbn" => "978-0520227040" ); $books["978-0393320978"] = array( "title" => "Beowulf", "isbn" => "978-0393320978" );

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

                               echo $isbn["title"] . " " . $isbn["isbn"];





                               echo "</li>";
                          }
                     ?>
</ul>

</body> </html>

I keep getting a "Hint" to use Double arrows but I am using the => to create the arrays

1 Answer

Hello,

When using a foreach loop that needs both the keys and the values extracted, you need to use the function like the following:

foreach($array as $key => $val)

The way you are using the foreach will only allow you to extract the values inside of the arrays, not their key values. Hope this helps.

Cheers!