0

少し探していましたが、価値のあるものが見つかりませんでした。だからここに私の問題があります:
私は3つのランダムなセットから選びたい非常に長い文字列を持っていて、それから3つの文字列をコンマで分割します。関連するコードは次のとおりです。

$mapsandmodes = array("Raid - Hardpoint", "Raid - Capture The Flag", "Raid - Search and Destroy", "Plaza - Hardpoint", "Plaza - Capture The Flag", "Aftermath - Search and Destroy", "Express - Capture The Flag", "Express - Hardpoint", "Express - Search and Destroy", "Meltdown - Search and Destroy", "Slums - Search and Destroy", "Slums - Hardpoint", "Slums - Capture The Flag", "Standoff - Capture The Flag", "Standoff - Search and Destroy", "Yemen - Hardpoint");

を使ってみ$mapswithmodes = array_rand($mapsandmodes)ましたが、数値が出力されます(これまでに「1」と「2」を取得しています)。その長い行に3つのランダムな文字列セットを選択し、3つをコンマで分割して、MYSQLテーブルに配置できるようにします。

4

2 に答える 2

2

置換せずに3つのランダムな要素を選択したいとします(たとえば、同じ要素を2回選択することはありません)。

ステップ1)配列をシャッフルしますhttp://php.net/manual/en/function.shuffle.php

ステップ2)配列の最初の3つの要素を取得します

ステップ3)implodeを使用して、接着剤としてコンマを使用して1つの文字列に結合しますhttp://www.php.net/manual/en/function.implode.php

置換して3つのランダムな要素を選択する場合(たとえば、同じ要素を2回選択できます):

手順1)array_rand($ mapsandmodes)を3回呼び出します。これにより、配列のインデックスが得られます。したがって、$ mapsandmodes [array_rand($ mapsandmodes)]は、配列にランダムな値を与えます。

ステップ2)implodeを使用する

于 2013-03-26T02:04:54.140 に答える
0

シャッフルする代わりに、元のコードの問題は、array_rand()を誤解しているだけです:array_rand()doc

$optionkeys = array_rand($mapsandmodes, 3);

その場合、$ optionkeysは長さ3の配列になり、その値は元の配列から選択されたキーであり、$ mapsandmodes [($ optionkeys [0])]、$ mapsandmodes [($optionkeys[1]の順に文字列にアクセスできます。 ])]、および$ mapsandmodes [($ optionkeys [2])]。

于 2013-03-26T02:16:33.210 に答える