PHP PHP Arrays and Control Structures PHP Arrays Multidimensional Arrays

I dont understand why it does not pass

I solved this problem two different ways that I believe are valid, but the system says that they are both incorrect. The for loop prints exactly the output onto the screen and fails.

index.php
<?php
//edit this array
$contacts = array(
  array(
    "name" => "Alena Holligan",
    "email" => "alena.holligan@teamtreehouse.com"
    ),
  array(
    "name" => "Dave McFarland",
    "email" => "dave.mcfarland@teamtreehouse.com"
    ),
  array(
    "name" => "Treasure Porth",
    "email" => "treasure.porth@teamtreehouse.com"
    ),
  array(
    "name" => "Andrew Chalkley",
    "email" => "andrew.chalkley@teamtreehouse.com"
    )
  );


// THE INSTRUCTIONS ASK FOR YOU TO REPLACE THE HARD CODED VALUES WITH THE ARRAY VALUES.
//I DID THIS WITH A FOREACH LOOP AND IT PRINTS TO THE SCREEN CORRECTLY BUT I GET AN ERROR ANYWAY
echo "<ul>\n";
foreach($contacts as $item){
  echo "<li>" . $item['name'] . " : " . $item['email'] . "</li>";
};
echo "</ul>\n";

//SO THEN I TRIED TO JUST REPLACE THE HARD CODED NAMES AND EMAILS WITHOUT USING A LOOP, BUT THAT DOES NOT WORK EITHER.
echo "<ul>\n";
//$contacts[0] will return 'Alena Holligan' in our simple array of names.

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>\n";

1 Answer

Steven Parker
Steven Parker
201,932 Points

Close! But each line is missing a concatenation operator and a newline symbol:

<?php
//...
echo "<li>"$contacts[0]['name'] . " : " . $contacts[0]['email'] . "</li>";       // original
echo "<li>" . $contacts[0]['name'] . " : " . $contacts[0]['email'] . "</li>\n";  // fixed