2012-12-05 102 views
3

我試圖從PHP數組創建各種標準HTML列表樣式作爲我在大學的最後一年項目的一部分,但是我在訪問/瞭解如何做到這一點。我從我使用的各種API中獲得了相關數據,但是我想動態創建整個列表,在合適的位置放入正確的信息位。從PHP陣列創建HTML列表

我正在創建的兩個列表樣式的詳細信息如下。

列表樣式1 - 文字/鑄造細節

對於列表的第一個風格,我想將其創建爲:

<ul> 
    <li>Cast name - Character name</li> 
    <li>Cast name - Character name</li> 
    <li>etc. etc.</li> 
<ul> 

我的數據集直接從數組看起來像這個:

Array 
(

[abridged_cast] => Array 
    (
     [0] => Array 
      (
       [name] => Daniel Craig 
       [id] => 162687443 
       [characters] => Array 
        (
         [0] => James Bond 
        ) 

      ) 

     [1] => Array 
      (
       [name] => Javier Bardem 
       [id] => 162661456 
       [characters] => Array 
        (
         [0] => Silva 
        ) 

      ) 

     [2] => Array 
      (
       [name] => Judi Dench 
       [id] => 162652435 
       [characters] => Array 
        (
         [0] => M 
        ) 

      ) 

     [3] => Array 
      (
       [name] => Ralph Fiennes 
       [id] => 162653681 
       [characters] => Array 
        (
         [0] => Gareth Mallory 
         [1] => Mallory 
        ) 

      ) 

     [4] => Array 
      (
       [name] => Naomie Harris 
       [id] => 162705781 
       [characters] => Array 
        (
         [0] => Eve 
        ) 

      ) 

    ) 

在上面的例子中,有五個演員和他們各自的角色名稱,但是在其他一些例子中, e大於或小於5,因此,理想情況下,我希望系統知道是否有許多演員成員被給予,併爲每個成員創建一個列表,最多可以有10個名字。

列表樣式2 - 影片

類似於去年的風格,但是這個名單將有望像這樣:

<ul> 
    <li><a href='<http://youtube.com/<dynamically generated URL direct to the clip>'><img src='dynamically generated URL to the clip's thumbnail' /></a></li> 
    <li>same as above...</li> 
</ul> 

源陣列看起來像這樣:

Array 
(
[id] => 37724 
[youtube] => Array 
    (
     [0] => Array 
      (
       [name] => Trailer 
       [size] => HQ 
       [source] => 24mTIE4D9JM 
      ) 

     [1] => Array 
      (
       [name] => Official Trailer 
       [size] => HD 
       [source] => 6kw1UVovByw 
      ) 

     [2] => Array 
      (
       [name] => Trailer 1 
       [size] => HD 
       [source] => 1Uyjf5Pp0Ko 
      ) 

     [3] => Array 
      (
       [name] => Trailer 2 
       [size] => HD 
       [source] => 5Ejo9_3iUpw 
      ) 

    ) 

) 

對於這篇文章的長度抱歉,提前感謝任何人可能能夠協助!

+1

告訴我們您先試過的東西 – Squazic

回答

0

你正在尋找的東西叫做foreach循環。爲了您的第一個例子會是這個樣子:

foreach($dataSet['abridged_cast'] as $castMember){ 
    echo '<li>'.$castMember['name'].'-'.implode(', ', $castMember['characters']). '</li>'; 
} 

現在這個例子是純粹illustratory雖然大多數definetely是begginers方法。 不過,我會強烈建議研究MVC模式和PHP框架,例如YII。如果部署和配置正確,YII應盡其所能爲您完成所有重複性工作。

我已經看到你的問題包含兩個部分,儘管我不願意爲第二個部分寫一個樣本,因爲它與第一部分幾乎相同,並且得到了適當的關注 - 你會得到正確的軌道和數字出來。

+0

謝謝!我確實認爲他們幾乎是一樣的,並且看着你的例子,我相信在第二個例子中使用該方法會非常明顯。 我感謝您的幫助,再次感謝。 –