PHPに連想配列があり、そこからランダムなキーと値のペアを選択したいと思います。これまでのところ、次のようになっています。
初期化します。
$locations = array();
SQLクエリをループし、キーと値のペアを追加します。
array_Push($locations, "'$location_id' => '$location_name'");
後で、配列のランダムなインデックスを選択します。
$Rand = array_Rand($locations);
ランドは単なる数字です。したがって、locations [$ Rand]は次のようになります。
'1' => 'Location 1'
OK、連想配列要素です。この時点では、この連想配列のキーがわからないので、次のことを試しました。
foreach($locations[$Rand] as $loc_id => $location_name) {
echo "$key : $value<br/>\n";
}
$loc_id, $location_name = each($locations[$Rand]);
$location_name = $locations[key($Rand)];
これらの3つの試みはどれも機能しません。それらはすべて、「渡された変数は配列ではありません」などのエラーをスローします。
配列からランダムなキーと値のペアを抽出できる単純な1つのライナーがあると確信しています。または、構文がオフになっています。私は本当に助けていただければ幸いです。
$array = array('a' => 1, 'b' => 2);
$key = array_Rand($array);
$value = $array[$key];
array_Rand() は、値ではなく、配列からキーを返します。あなたはただ使うことができます:
$location_name = $locations[$Rand];
場所の名前を取得します。
完全な例を次に示します: http://codepad.org/zR2YdMGN
[送信]を数回クリックするだけで、ランダムに機能することがわかります。
あなたのプッシュは間違っています
$locations[$location_id] = $location_name;
そのはず
したがって、質問でランダムな要素を選択することについては何もありません。
コードを使用する前に適切なデータがあるかどうかを確認するために、常にコードをデバッグしてください