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

Need help with adding key to array value.

I am having a mental breakdown over this. I'm taking the PHP course and to be honest i have no interest in this paypal crap that's implemented into it.

Nevertheless i am a perfectionist and i need to figure this out to get the badge for this part of the course.

The task is as follows: 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.

If anyone could help me or just give me a hint as to what i need to do and/or google i would appreciate it so much!

books.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 $book => $isbn) { ?>
            <li><?php echo $book; ?></li>
        <?php } ?>
    </ul>
</body>
</html>

1 Answer

OMFG. I figured it out. It was so easy! I'll put the answer here for anyone who might need it:

        <?php foreach($books as $isbn => $book) { ?>
            <li><?php echo $book; ?></li>
        <?php } ?>

I blame having studied all day and it being late here in Sweden for my stupidity. :D

Nicklas,

The syntax for a foreach look when you are iterating through a associative array is as follows for future reference;

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

Therefore in your first post you were actually getting the key with $book and when you swapped it around in your sesond it was working.

Jayden

Thank you so much Jayden. It makes a whole lot more sense now!

http://php.net/manual/en/book.array.php

If you have a look here, you will see PHP comes with some very powerful array functions and sorting methods. Good luck!