2012-02-14 3 views
1

Итак, я делаю плагин для вывода данных facebook на веб-сайты Wordpress, так как я делаю это, получая данные из facebook через график api в формате json, а затем декодируя данные json в php чтобы получить массив, это полный массив, который возвращается, когда я переменная дамп JSON декодируются данные:Неожиданный вывод при прохождении через массив

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) 

Теперь, так как это кратна одномерный массив Я использую несколько Еогеасп петли, чтобы получить в данных , как показано ниже:

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 Я знаю;), но я всегда в любом случае результат полностью прекрасен, за исключением двух блоков данных, которые не должны быть там, переменная $ data ['name'] соответствует «h» в обоих из них, там вообще нет даты, и их id просто «h» также, я в тупике от этого и не знаю, с чего начать поиск решения.

ответ

2

Вам нужно всего лишь один Еогеасп:

в предположении $ данных [ «данные»] в начале:

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

Спасибо так много, вы можете объяснить, почему 2 дополнительные элементы были появляются? Это помогло бы много :) –

+0

С вашим attemp вы дважды зацикливаете свой массив, потому что у вас есть $ data в первом foreach, что во втором foreach одинаково. Как сказал @TV productions, не используйте одно и то же имя переменной в foreach, потому что вы перезапишете его самим. – djot

0

Вы не можете использовать ту же переменную. Используйте что-то вроде

foreach($data as $key=>$value) { 
//..etc 
} 
Смежные вопросы