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 PHP Arrays and Control Structures PHP Arrays Multidimensional Arrays

Task says to replace values of the output, but error says I should not be modifying the output at this point?

I've tried this task in a few different ways, but I can't seem to pass the lesson. I've included some of the different codes i've tried (one at a time), and each look correct in the preview. However, I get a message then stating the output isn't to be modified.

I think I understand how the arrays work, but it's a bit confusing to whats being asked. How exactly do I replace the values of the output without modifying the output? I re-watched all of the videos to find the answer and can't seem to understand this part. Is there something I'm missing or a specific code order this challenge is looking for?

Please help. Thank you. - Don

index.php
<?php
//edit this array
//$contacts = array('Alena Holligan', 'Dave McFarland', 'Treasure Porth', 'Andrew Chalkley');

$contacts[] = array('name' => 'Alena Holligan', 'email' => 'alena.holligan@teamtreehouse.com');
$contacts[] = array('name' => 'Dave McFarland', 'email' => 'dave.mcfarland@teamtreehouse.com');
$contacts[] = array('name' => 'Treasure Porth', 'email' => 'treasure.porth@teamtreehouse.com');
$contacts[] = array('name' => 'Andrew Chalkley', 'email' => 'andrew.chalkley@teamtreehouse.com');

echo "<ul>\n";
//$contacts[0] will return 'Alena Holligan' in our simple array of names.
echo "<li>Alena Holligan : alena.holligan@teamtreehouse.com</li>\n";
echo "<li>Dave McFarland : dave.mcfarland@teamtreehouse.com</li>\n";
echo "<li>Treasure Porth : treasure.porth@teamtreehouse.com</li>\n";
echo "<li>Andrew Chalkley : andrew.chalkley@teamtreehouse.com</li>\n";
echo "</ul>\n";

////////// Does not see required output
$contact1 = implode(" : ", $contacts[0]);
$contact2 = implode(" : ", $contacts[1]);
$contact3 = implode(" : ", $contacts[2]);
$contact4 = implode(" : ", $contacts[3]);
echo "<ul>\n";
echo "<li>$contact1</li>\n";
echo "<li>$contact2</li>\n";
echo "<li>$contact3</li>\n";
echo "<li>$contact4</li>\n";
echo "</ul>\n";

////////// Output should not be modified
echo "<ul>";
echo "<li>" . "{$contacts[0]['name']}" . " : " . "{$contacts[0]['email']} </li>";
echo "<li>" . "{$contacts[1]['name']}" . " : " . "{$contacts[1]['email']} </li>";
echo "<li>" . "{$contacts[2]['name']}" . " : " . "{$contacts[2]['email']} </li>";
echo "<li>" . "{$contacts[3]['name']}" . " : " . "{$contacts[3]['email']} </li>";
echo "</ul>";

////////// Does not see required output
echo $contacts[0]['name'] . " : " . $contacts[0]['email'] . "<br>";
echo $contacts[1]['name'] . " : " . $contacts[1]['email'] . "<br>";
echo $contacts[2]['name'] . " : " . $contacts[2]['email'] . "<br>";
echo $contacts[3]['name'] . " : " . $contacts[3]['email'] . "<br>";

?>

1 Answer

Umesh Ravji
Umesh Ravji
42,386 Points

Hi there Don, I'm not sure how the engine works underneath, but here's whats wrong with one of them (with fixes).

<?php
echo "<ul>\n";
echo "<li>" . "{$contacts[0]['name']}" . " : " . "{$contacts[0]['email']}</li>\n";
echo "<li>" . "{$contacts[1]['name']}" . " : " . "{$contacts[1]['email']}</li>\n";
echo "<li>" . "{$contacts[2]['name']}" . " : " . "{$contacts[2]['email']}</li>\n";
echo "<li>" . "{$contacts[3]['name']}" . " : " . "{$contacts[3]['email']}</li>\n";
echo "</ul>\n";

The \n by the ul and li tags had been removed, and a space added between the email and the li tag. Your result looked fine, but it wasn't the exact thing that was been looked for.