2009-11-29 73 views
0

這個數組是正確創建的,雖然我需要選擇一個然後打印它,這不是發生在我身上......任何想法?來自陣列的隨機圖像PHP5

<?php 
$bgimagearray = array(); 
$iterator = new DirectoryIterator("/home/sites/yellostudio.co.uk/public_html/public/themes/yello/images/backgrounds"); 
foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isFile() && !preg_match('/-c\.jpg$/', $fileinfo->getFilename())) { 
     $bgimagearray[] = "'" . $fileinfo->getFilename() . "'"; 
    } 
} 

$bgimage = array_rand ($bgimagearray, 2); 


?> 
<img src="<?php echo URL_PUBLIC; ?>public/themes/yello/images/backgrounds/<?php echo $bgimage; ?>" alt=""/> 

回答

2

Qutoing PHP手冊:

如果你只取出一個,array_rand()返回一個隨機進入的關鍵。否則,它將爲隨機條目返回一組鍵。這樣做是爲了您可以選擇隨機鍵以及數組中的值。

您正在傳遞2作爲第二個參數,因此正在獲取一個鍵數組,您將在<?php echo $bgimage; ?>中使用字符串作爲字符串。

爲了解決這個問題,你必須寫類似:

<?php 
// ... 
$bgimage = array_rand ($bgimagearray); 
?> 
<img src="<?php echo URL_PUBLIC; ?>.../<?php echo $bgimagearray[$bgimage]; ?>" alt=""/> 
+0

感謝隊友,這就是工作一種享受。 – Andy 2009-11-29 19:20:19