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 Basic PHP Website (2018) Listing and Sorting Inventory Items Associative Arrays

Luca Derelli
Luca Derelli
146 Points

I don't know what I am doing wrong (task 2 of 7)

I don't know what I am doing wrong (task 2 of 7)

index.php
<?php

$movie = [];
$movie[] = ["title" => "The Empire Strikes Back"];
?>

<h1>Back to the Future (1985)</h1>

<table>
  <tr>
    <th>Director</th>
    <td>Robert Zemeckis</td>
  </tr>
  <tr>
    <th>IMDB Rating</th>
    <td>8.5</td>
  </tr>
  <tr>
    <th>IMDB Ranking</th>
    <td>53</td>
  </tr>
</table>

3 Answers

Codin - Codesmite
Codin - Codesmite
8,600 Points

Matthew's answer is correct, but also as a side note your code was not far off from being correct using PHP5 shorthand array.

This would of also been valid:

<?php

$movie = [];
$movie['title'] = 'The Empire Strikes Back';

?>

This is the PHP 5 shorthand for declaring an empty array (which you got correct):

<?php

$movie = [];

?>

and this is the PHP5 shorthand for array push (which adds the value to the end of the array):

<?php

$movie[] = value;  /* Without Associative Key */
$movie[key] = value;  /* With Associative Key */

?>

This is the more modern way to declare an array, I find it a lot cleaner and easier to read than the old way. But it is not valid if your server's PHP version is less than 5.4 (Which is unlikely nowadays, especially with the recent release of PHP7).

You'd want to do either of these 2 statements:

<?php
$movie = array(
"title" => "The Empire Strikes Back"
);
?>

---or---

<?php
$movie = array();
$movie["title"] = "The Empire Strikes Back";
Luca Derelli
Luca Derelli
146 Points

Thank you Matthew!