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 trialandrew naeve
11,503 Pointsarray to string conversion
$contacts[0]['name'] throws array to string conversion error. what am I missing?
2 Answers
andren
28,558 PointsWhen you insert a multidimensional array in double quoted strings you have to wrap the array in curly braces {}.
So instead of this "$contacts[0]['name']" you would have this "{$contacts[0]['name']}"
The reason is that when you use string interpolation PHP has to guess where your variable ends and regular text begins. While it usually has no issue doing so, multidimensional arrays is one case where it is unable to. The curly braces allows you to tell PHP exactly where the variable starts and ends.
So to summarize, just place {} around your array variables and that error should go away.
simhub
26,544 Pointshi andrew,
if your code looks kind of this it should work fine:
$contacts = [['name'=>'Alena Holligan','email'=>'alena.holligan@teamtreehouse.com'],
['name'=>'Dave McFarland','email'=>'dave.mcfarland@teamtreehouse.com'],
['name'=>'Treasure Porth','email'=>'treasure.porth@teamtreehouse.com'],
['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>".$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";