Unexpected output when looping through an array

So I’m making a plugin to output facebook data onto wordpress websites, the way I do this is by retrieving facebook data via the graph api in json format, then decoding that json data in php to get an array, this is the full array that is returned when I do a variable dump of the json decoded data:

array
'data' =>

array
  0 => 
    array
      'name' => string '' (length=21)
      'start_time' => string '' (length=19)
      'end_time' => string '' (length=19)
      'location' => string '' (length=11)
      'id' => string '' (length=15)
      'rsvp_status' => string '' (length=9)
  1 => 
    array
      'name' => string '' (length=27)
      'start_time' => string '' (length=19)
      'end_time' => string '' (length=19)
      'id' => string '' (length=15)
      'rsvp_status' => string '' (length=9)
  2 => 
    array
      'name' => string '' (length=35)
      'start_time' => string '' (length=19)
      'end_time' => string '' (length=19)
      'location' => string '' (length=13)
      'id' => string '' (length=15)
      'rsvp_status' => string '' (length=9)
'paging' => 
array
  'previous' => string '' (length=224)
  'next' => string '' (length=211)

Now since this is a multiple dimensional array I use multiple foreach loops to get at the data, as shown below:

Read More
foreach ($data as $data) {
    foreach ($data as $data) { ?>

    <div class="eventSegment">
        <h3><?php echo $data['name']; ?></h3>
        <p><?php echo strstr($data['start_time'], T, true); ?></p>
        <a href="http://www.facebook.com/<?php echo $data['id']; ?>">
            <img src="<?php echo $plugin_dir; ?>/images/rsvpfb.png" alt="RSVP on Facebook" class="RSVPfacebook" />
        </a>    
    </div>

    <?php
    }
}

endif; }  ?>

Messy I know 😉 but I always tidy up my code at the end, anyway, the result is completely fine, except for two blocks of data that shouldn’t be there, the $data[‘name’] variable corresponds to ‘h’ in the both of them, there is no date at all, and their id is simply ‘h’ as well, I am stumped by this and don’t know where to begin searching for a solution.

Related posts

Leave a Reply

2 comments

  1. You only need one foreach:

    assuming $data[‘data’] as start:

    foreach ($data['data'] as $array_index => $this_data) {
       echo $this_data['name'].'<br />';
    }