2012-02-12 74 views
0

我有50個字符串。字符串回顯沒有,如果

$rand = rand(0,50); 

$name[1] = "Jane"; 
$name[2] = "Marienne"; 
... 
... 
... 
$name[50] = "Mary"; 

echo $name[$rand]; 

例如,如果$ rand ==「2」,我想回顯「Marienne」。但上面的代碼不起作用。我不想使用if語句,因爲字符串太多。你建議我什麼?謝謝。

+3

您是否看到任何錯誤消息?你確定沒有選擇'0'作爲隨機數嗎?因爲數組中沒有零鍵。以防萬一。 – Nirmal 2012-02-12 17:32:52

回答

2

如果您沒有像未初始化的$name[0]鍵那樣的「DOH」時刻,您的發佈代碼應該可以正常工作。

但是,如果你想完全避免這個問題,你可以使用array_randdocs功能挑選出一個(僞)隨機排列關鍵:

$names = array('Peter', 'Paul', 'John'); 
echo $names[array_rand($names)]; 

或者,而不是硬編碼在50爲你的最大在隨機範圍內,爲何不嘗試:

rand(0, count($names)-1); 
相關問題