2011-11-28 44 views
0

我正在使用PHP腳本從文本文件中獲取數據並在php頁面中顯示三個隨機圖像。我遇到的問題是三個圖像並不總是顯示在頁面上:/刷新頁面以查看新的隨機圖像時,有時只顯示1個圖像,有時只顯示2個圖像,有時只顯示3個圖像。我需要三個隨機圖像始終顯示。有沒有人有任何想法,我可以添加,以確保三個圖像始終顯示? :SPHP隨機圖像編號不一致

PHP:

<?php 
$random = "random.txt"; 
$fp = file($random); 
shuffle($fp); 
$keys = array_rand($fp, 3); 
for ($i = 0; $i < 3; $i++): 
$rl = $fp[$keys[$i]]; 
echo $rl; 
endfor; 
?> 

HTML:

<div class="imagecontainer"> 
<?php include('rotate.php') ?> 
</div> 
+1

有沒有什麼邏輯來圖像顯示時,什麼時候不顯示?即某些圖像從不顯示?你有沒有看過一個或多個圖像的HTML源代碼,看看有沒有錯? ps你可能會發現在這種情況下使用foreach()比使用()更容易。 – liquorvicar

+0

我只是想讓三個隨機圖像中的每一個都不同 - 所以一次顯示沒有重複的隨機圖像。我僅在顯示1/2圖像時檢出了html源代碼,它僅顯示只打印一個/兩個圖像:( – Jess

+0

「random.txt」內部是什麼? – Nick

回答

3

array_rand()提供您的文件數組的鍵(和值),但不會重新對其進行索引從零開始。 假設你的數組有5個元素,0到4. 然後獲得隨機密鑰可以產生一個包含(0 =>「img0」,2 =>「img2」,4 =>「img4」)的數組。

您的循環只關心編號爲0到2的索引。這就是爲什麼在某些情況下,您錯過了一些圖像。

嘗試使用for_each循環訪問$ keys-array。這應該忽略數組的索引號。