2012-10-14 58 views
2

因爲我不是一個php傢伙,所以我需要幫助創建一個數組來保存每個視頻的YouTube視頻和說明。帶有ID和描述的隨機陣列 - 隨機數組和打印列表

現在我有一個只包含視頻ID的數組。爲每個ID添加說明的最佳方式是什麼,以便我可以輕鬆地遍歷數組並在下面創建所需的輸出。

<?php 
    $vids = array(
     "OOWvNbU6ciLg", 
     "5itTJabAJfps", 
     "jFA8Tesmames", 
     "Trz9Y01xx1TY", 
     "mMQGcIrlyseU", 
     "qGrlQNvqqL14", 
     "QymnLbSpJ7lA", 
     "jFAh8Tesmmes", 
     "5itTJtbAJfps", 
     "OOWvNpU6ciLg" 
    ); 
?> 

我最終想要的是一個視頻列表,下面有視頻描述。我希望我的數組在創建列表之前進行洗牌,因此每次創建列表時我都有不同的順序。

HTML

<li class="video"> 
    <figure> 
     <iframe width="100%" height="200px" src="http://www.youtube.com/embed/OxXAT2epfEYA?HD=1;rel=0;showinfo=0" frameborder="0" allowfullscreen></iframe> 
     <figcaption>Description of the video</figcaption> 
    </figugre> 
</li> 

什麼是定義數組,所以我可以通過陣列洗牌,然後迴路上與iframe嵌入代碼和下面的說明打印每個<li>項目的最佳途徑。

預先感謝您。

回答

2

請有關關聯數組視頻的所有信息:

$single_video = array(
    "id" => "OOWvNbU6ciLg", 
    "description" => "Video descr" 
); 

現在建立的這些視頻的數組:

$vids = array(
    array(
     "id" => "OOWvNbU6ciLg", 
     "description" => "Video descr" 
    ), 
    array(
     "id" => "5itTJabAJfps", 
     "description" => "Other video descr" 
    ), 
); 

現在您可以輕鬆將它洗,並循環:

$vids = array(); 
shuffle($vids); 
foreach($vids as $video){ 
    //$video here is associative array with single video 
    echo "{$video['id']} - {$video['description']}"; 
} 
1

只是想着我的頭頂,你可以通過把ID和描述的關聯數組一起在陣列中。

vidArray = array(
videoId1 => 'This is the description for video 1.', 
videoId2 => 'This is the description for video 2', 
etc.); 

然後,您可以使用for語句來遍歷數組,並使用數組元素信息創建您的iframe。

PHP也有一個內置的隨機洗牌功能隨機洗牌數組。 Array shuffle

+0

但是,混洗關聯數組意味着失去它的鍵,所以在洗牌這樣的數組之後你將不會有videoId。 –

+0

@ dev-null-dweller謝謝你,我不知道。我從來沒有遇到過需要使用數組shuffle函數的情況。我只記得有一天在閱讀PHP手冊時看到它存在。 –