2012-02-12 14 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

答えて

2

初期化されていない$name[0]キーのような「DOH」の瞬間がない場合は、投稿されたコードが機能するはずです。代わりにmaxと50にハードコーディングで、また

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

:あなたは完全にその問題を回避したい場合は

ただし、(擬似)ランダム配列のキーを取り出すためにarray_randdocs機能を使用することができますランダムな範囲で試してみてはどうですか:

rand(0, count($names)-1); 
関連する問題