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 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!