Treehouse: Grow your CSS skills. Land your dream job.

Last updated on:

Associative Array Syntax

Simple

$carParts = array( 
   'Tires'=>100, 
   'Window'=>1042, 
   'DoorHandle'=>917 
);

Array of Associative Arrays

public $notifyPartners = array(
			array(
				'name' => 'Twitter', 
				'tag'  => 'Social Network', 
				'url'  => ''),
			array(
				'name' => 'Campaign Monitor', 
				'tag'  => 'Email Marketing', 
				'url'  => ''),
			array(
				'name' => 'Sendloop', 
				'tag'  => 'Email Marketing', 
				'url'  => ''),
			array(
				'name' => 'Highrise', 
				'tag'  => 'CRM', 
				'url'  => '')
);

Looping

foreach ($carParts as $key => $value) {
 echo $key.'=>'.$value.'<br />';
}
while ($element = each($carParts)) {
 echo $element['key'];
 echo ' - ';
 echo $element['value'];
 echo '<br />';
}

Comments

  1. Nachzeher
    Permalink to comment#

    Thank’s for the tips!

    It was very useful to me!

  2. Karl Groves
    Permalink to comment#

    Using your looping example won’t work on a multidimensional array (you call it an array of arrays).

    Example would be:
    $count = count( $notifyPartners );

    for($x = 0; $x < $count; $x++){
    echo $notifyPartners[$x]['name'] . "”;
    echo $notifyPartners[$x][‘tag’] . “”;
    echo $notifyPartners[$x][‘url’] . “”;
    }

  3. Dimitrios
    Permalink to comment#

    Another example (portable) .

    $a = array(
    array(
    ‘name’ => ‘Twitter’,
    ‘tag’ => ‘Social Network’,
    ‘url’ => ”),
    array(
    ‘name’ => ‘Campaign Monitor’,
    ‘tag’ => ‘Email Marketing’,
    ‘url’ => ”),
    array(
    ‘name’ => ‘Sendloop’,
    ‘tag’ => ‘Email Marketing’,
    ‘url’ => ”),
    array(
    ‘name’ => ‘Highrise’,
    ‘tag’ => ‘CRM’,
    ‘url’ => ”));

    foreach ($a as $loop1) {
    foreach ($loop1 as $key => $val) {
    echo $key .” : “. $val .””;
    }
    }

  4. hem
    Permalink to comment#

    it would have been better had you shown the results of looping for the benefit of the newbies.

  5. Ventura
    Permalink to comment#

    Great site, helped me a lot. I found very interesting tricks, Greetings.

  6. dibiler
    Permalink to comment#

    Your last example:
    while ($element = each($carParts)) {
    echo $element[‘key’];
    echo ‘ – ‘;
    echo $element[‘value’];
    echo ”;
    }
    Can be put in a foreach better:
    foreach ($carParts as $element)
    {
    echo $element[‘name’];
    echo $element[‘tag’];
    echo $element[‘url’];
    }
    or if you don’t know the keys (Dimitrios example):
    foreach ($carParts as $element)
    {
    foreach ($element $k=>$v)
    echo $k.’:’.$v;
    }
    also, for performance, it’s a bit faster using a FOR loop, as Karl Groves wrote.

  7. Attila Hajzer
    Permalink to comment#

    for the while loop couldn’t you do this too? :

    $message = "";
    
    while ($element = each($carParts))
       {
          $message .= "$element['key']  -  $element['value'] <br>";
       }
    

    To reduce lines of code and in essence, avoid errors by accidentally mistyping echo or something?

  8. Chintan Parikh
    Permalink to comment#

    Why call it “Array of Associative Arrays” instead of calling it multidimensional array?

Leave a Comment

Posting Code

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in in triple backtick fences like this:

```
<script>
  function example() {
    element.innerHTML = "<div>code</div>";
  }
</script>
```