2012-12-31 79 views
-1
<?php 
$_50Shades = array("#150517", "#250517", "#2B1B17", "#342826"); 

$randKeys = array_rand($_50Shades, 1); 

print_r ("<BODY BGCOLOR=\"$randKeys\">"); 
?> 

這是我使用php手冊和隨機顏色生成器教程放在一起的代碼。 我是一個初學PHP和一般編程的人,所以我仍然試圖去處理事情。 結果只是一個黑屏,而不是生成我輸入的隨機顏色之一?嘗試在PHP中創建一個隨機顏色生成器

+0

看看HTML源代碼,看看有什麼不對。 –

回答

0
$_50Shades = array("#150517", "#250517", "#2B1B17", "#342826"); 
$randKeys = $_50Shades[rand(0,count($_50Shades)-1)]; 
print_r ("<BODY BGCOLOR=\"$randKeys\">"); 

,或者如果你是使用array_rand堅持:

$randKeys = $_50Shades[array_rand($_50Shades)]; 
+0

嗨,感謝您的快速回復,您能否解釋爲什麼您在第2行做出這些更改?我很好奇,因爲我試圖獲得一些知識?再次感謝 –

+0

蘭德會做同樣的事情,如果你正在尋找一個隨機數,在你的情況下索引。我不確定爲什麼我選擇了'rand'而不是'array_rand'。 –

+0

array_rand返回數組的鍵,通過鍵訪問數組的一個元素,在這種情況下,如果僅返回1,則可能是$ _50Shades [0]或[1]或[2]或[3] –

3

array_rand返回鍵,而不是實際值。做這樣的事情。

<?php 
$_50Shades = array("#150517", "#250517", "#2B1B17", "#342826"); 

$randKeys = array_rand($_50Shades, 1); 

print_r ("<BODY BGCOLOR=\"".$_50Shades[$randKeys]."\">"); 
?> 
1

array_rand返回對應於所選擇的值,而不是值。

試試這個:

$_50Shades = array(.....); 
$randcol = $_50Shades[array_rand($_50Shades)]; 
echo "<body style=\"background-color:".$randcol.";\">"; 
+0

謝謝! :)偉大的幫助! –

0

找上了PHP documentation

如果你只取出一個,array_rand()返回一個隨機進入的關鍵。否則,它將爲隨機條目返回一組鍵。