2013-06-03 2 views
0

У меня есть массив, который выглядит так, и я хочу отобразить его в более читаемом формате. . Я хотел бы имя птицы (Gray Hawk и т.д.), а затем каждый список (который число результат будет меняться Это код, который я в настоящее время:display Array в тегах ul li

$xml = simplexml_load_file($noteable); 
$result = array(); 
foreach ($xml->result->sighting as $sighting) { 
    $location = (string) $sighting->{'loc-name'}; 
    $bird = (string) $sighting->{'com-name'}; 
    $howMany = (string) $sighting->{'how-many'}; 
    $obsdt = (string) $sighting->{'obs-dt'}; 
      $thenotedate = $obsdt; 
     $thenotedate = split('T',$thenotedate); 
     $thenotedate = $thenotedate[0]; 
     $thenotedate = strftime('%a %b %e at %I:%M %p',strtotime($thenotedate)); 

ksort($result); 

    if (!isset($result[$bird])) $result[$bird] = array(); 
    $result[$bird][] = $howMany . ' seen at ' . $location . ' on ' . $thenotedate; 
} 
print"<pre>"; 
print_r($result); 
print"</pre>"; 
} 

И это массив

[Gray Hawk] => Array 
    (
     [0] => 1 seen at Florida Canyon--lower on Sun Jun 2 at 04:50 PM 
     [1] => 1 seen at Madera Canyon--Whitehouse Picnic area on Sat Jun 1 at 07:30 AM 
     [2] => 1 seen at Florida Canyon--lower on Thu May 30 at 07:56 AM 
     [3] => 1 seen at Florida Canyon--lower on Wed May 29 at 07:40 AM 
     [4] => 1 seen at Florida Canyon--lower on Wed May 29 at 07:37 AM 
     [5] => 1 seen at Madera Canyon--Madera Picnic Area on Tue May 28 at 04:45 PM 
     [6] => 1 seen at Madera Canyon--Proctor Rd. on Mon May 27 at 09:40 AM 
    ) 

[MacGillivray's Warbler] => Array 
    (
     [0] => 1 seen at Madera Canyon--Proctor Rd. on Sat May 25 at 05:45 PM 
     [1] => 1 seen at Madera Canyon--Proctor Rd. on Sat May 25 at 05:45 PM 
     [2] => 1 seen at Madera Canyon--Proctor Rd. on Sat May 25 at 05:30 PM 
    ) 
+1

что вы хотите сделать? похоже, вы знаете, как использовать 'foreach' и как выводить теги html. тебе нужно что-то еще? – sgroves

+0

каждый раз, когда я пытаюсь сделать foreach $ result, я получаю только первую птицу/не знаю ... не могу понять, как откликнуться на них. .. Я действительно действительно новичок в этом :( –

+2

ohhhh i gotcha. @ Anze ответ корректно, 'print_r' обычно используется для отладки, а не для фактического отображения данных для пользователя. Просто переходите через' $ results' с другим 'foreach'. – sgroves

ответ

1

попробуйте что-нибудь вроде этого -

foreach ($result as $key=>$value){ 

    //echo Bird Name 
    echo "<h3>$key</h3>"; 

    //start an unordered list 
    echo "<ul>";  

    //echo each sighting  
    foreach($value as $row){ 
     echo "<li>$row</li>"; 
    } 

    //close the unordered list 
    echo "</ul>"; 
} 
+0

работает как драгоценный камень, большое вам спасибо! Думаю, я получил это отсюда. –

1

при печати результата не использовать print_r($result); использовать цикл, который возвращает каждый элемент массива! Если вам нужна информация о том, как отобразить массив, как вы хотите точно рассказать нам, как вы хотите его вывести

+0

Я бы хотел, чтобы результаты повторялись так, как будто они показаны с именем птица как h3, а затем наблюдения, вложенные под ... спасибо –

Смежные вопросы