2010-11-23 26 views
0

我需要生成一個隨機圖像庫。除了中間的那個必須始終是相同的。隨機數循環,除了中間的一個

比方說,我有40個圖像。我需要從40中選擇16張隨機圖像。第9張圖像應始終保持一致。

有什麼想法?

精密:

「硬」的部分對我來說是知道已經使用的號碼,這是事先沒有

感謝

+0

你顯示16張圖像。那些代表已經用過的東西不是那些代表嗎?!是什麼讓這個「難」? – stillstanding 2010-11-23 10:10:15

+0

我需要知道,所以我不使用他們與我的隨機代 – Flipke 2010-11-23 10:17:02

+0

看到我的答案。 `$ array`包含使用的數字。 `$未使用的`具有在洗牌期間未被包括的數字。 – stillstanding 2010-11-23 10:19:14

回答

3

解決方案,而迭代:

$array=$original; // $original represents your 40 images 
$ninth=$array[8]; // save 9th element for use later 
unset($array[8]); // exclude the 9th element 
shuffle($array); // randomize sequence 
$array=array_slice($array,0,16); // get 16 images 
$array[8]=$ninth; // replace 9th element with saved element 
$unused=array_diff($original,$array); // list of unused elements 
0

沿着這些線路的東西應該幫助你:

for ($i=1; $i<=16; $i++) { 
    if ($i==9) { 
    // show static image 
    } else { 
    // generate random nr between 1 and 40 
    } 
} 
1

所以,寫一個函數printRandomImage()

調用8次,然後打印非隨機圖像,然後再調用7次。

如果您想避免隨機圖像中的重複,則必須從40張圖像的列表中刪除已選擇的圖像。