私はPHPで連想配列を持っており、そこからランダムなキー/値の組を選択したいと考えています。これまで私が持っているものは次のとおりです。PHP連想配列からランダムな要素を選択
初期化。
$locations = array();
SQLクエリをループして、追加のキー/ヴァルのペア:
$rand = array_rand($locations);
ランドは単なる数である:後で
array_push($locations, "'$location_id' => '$location_name'");
は、私は、配列のランダムなインデックスを選択します。だから、場所[$ rand]は次のようなものです:
'1' => 'Location 1'
いいね、assoc配列要素。この時点で、私はこのassoc配列の鍵を知らないので、私は以下のことを試みました:
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つの試みはどれも動作しません。それらはすべて "Passed変数は配列ではありません"のようなエラーをスローします。
配列からランダムなキー/値のペアを抜き取ることができる単純な1ライナーがあると確信しています。または、私の構文がオフです。私は本当に助けに感謝します。
問題は 'array_push($ locations、" '$ location_id' => '$ location_name' ") ; '。代わりにこれを実行してください: '$ locations [$ location_id] = $ location_name;'。 'array_rand($ location)'はランダムな '$ location_id'を返します。 '$ name = $ locations [$ location_id]'で名前を得ることができます。 – arnaud576875
あなたはすべて正しかった、もちろん - 私はちょうどサンプルコードでうまくいくこの1つのBCを選んだ。そして、ええ、私はプッシュが正しいのではないかとかなり恥ずかしいです。私はperl(wハッシュ)で1トンをコード化するので、私はよく知っていたはずです!ありがとうございました! – Jeff
いいね、あなたは私の一日を救った – RezaSh