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

Alec Jones
Alec Jones
5,510 Points

I cannot understand???

Next, modify the code inside the foreach loop to display the $isbn in parentheses. After the title, add a space, an opening parenthesis, the ISBN, and a closing parenthesis.

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

2 Answers

Hi Alec,

This was a tough one, at least for me. I don't really know how to explain it so I'll just show you.

Jeff

    <ul>
        <?php foreach($books as $isbn => $book) { ?>
            <li><?php echo $book . " (" . $isbn . ")"; ?></li>
        <?php } ?>
    </ul>
Nathan F.
Nathan F.
30,773 Points

I can see how the wording could trip someone up to write something like <?php foreach($books as $isbn => $book) { ?> <li><?php echo $book ($isbn); ?></li> <?php } ?>

Which would cause syntax errors. You could write <?php echo $book,$isbn; ?> But this would output a string that looks like this: The Great Gatsby978-0743273565

What you want to do is echo a string with a particular format--a title followed by an ISBN in parentheses. So you actually need to concatenate a string with that format. You can also use interpolation to format the string without concatenation:

<?php echo "$book ( $isbn )"; ?>
Nathan F.
Nathan F.
30,773 Points

Apologies for the double answer/comment. My edit function doesn't seem to be behaving nicely.

Nathan F.
Nathan F.
30,773 Points

I can see how the wording could trip someone up to write something like

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

Which would cause syntax errors. You could write

<?php echo $book,$isbn; ?> 

But this would output a string that looks like this:

The Great Gatsby978-0743273565

What you want to do is echo a string with a particular format--a title followed by an ISBN in parentheses. So you actually need to concatenate a string with that format. You can also use interpolation to format the string without concatenation:

<?php echo "$book ( $isbn )"; ?>