私はそれが私には、以下の配列からランダムな値を取得しようとしarray_rand使用されるような簡単なことだと思った:連想配列からランダムな値を返すPHP関数とは何ですか?
$array= Array ([0] => 126 [1] => 74);
array_rand($array);
しかし、それは私に語ったものを、0を返して、これは、この場合、右の関数ではありません。 array_randためのPHPのマニュアルによれば
私はそれが私には、以下の配列からランダムな値を取得しようとしarray_rand使用されるような簡単なことだと思った:連想配列からランダムな値を返すPHP関数とは何ですか?
$array= Array ([0] => 126 [1] => 74);
array_rand($array);
しかし、それは私に語ったものを、0を返して、これは、この場合、右の関数ではありません。 array_randためのPHPのマニュアルによれば
:
だけつのエントリを取得する場合、array_rand()はランダム エントリのキーを返します。それ以外の場合は、ランダムな項目のキーの配列が返されます。 これはランダムな値として と同様に配列からランダムキーを取り出すことができるように行われます。 配列内にあるよりも多くの要素を選択しようとすると、E_WARNINGレベルのエラーが発生し、NULLは が返されます。
この関数はの配列キーを返します。この場合、0が配列の有効なキーになります。
私は別のものを試してみると、はるかに良い結果を得ました。将来この問題に直面する人は、評判スコアが緩やかでなく、これを使用することもできます。
$array = array(1 => 'John', 2 => 'Paul',3 => 'Sarah',4 => 'Lilly');
$key = array_rand($array);
echo $value = $array[$key];
やPHPのforeachの...
function array_random_assoc($arr, $num = 1) {
$keys = array_keys($arr);
shuffle($keys);
$r = array();
for ($i = 0; $i < $num; $i++) {
$r[$keys[$i]] = $arr[$keys[$i]];
}
return $r;}
$a = array("a" => "apple", "b" => "banana", "c" => "cherry");
$randomnised_array= array_random_assoc($a);
foreach($randomnised_array as $random_value){
echo $random_value;
}
Array_rand()関数以外マニュアルから別の解決策は、配列ではない値のランダム鍵を戻すあります。あなたがあなたの答えを持っていただろう[マニュアル](http://php.net/manual/en/function.array-rand.php)を見ていたなら、私たちは以下の
$array= Array ([0] => 126 [1] => 74);
$random_key=array_rand($array);
echo $array[$random_key];
のようにそれを使用することができます –
どうぞ、* [詳細なドキュメント](http://php.net/array_rand)をお読みください。 – deceze
...登場した疑わしい回答の数で判断し、削除されてしまったので、OPはマニュアルを読んでいない唯一の人ではないようです。 – CD001