ホームページ  >  記事  >  バックエンド開発  >  PHP配列から複数の要素をランダムに抽出する方法(3つの方法)

PHP配列から複数の要素をランダムに抽出する方法(3つの方法)

PHPz
PHPzオリジナル
2023-04-12 09:18:572687ブラウズ

PHP 開発では、配列から複数の要素をランダムに抽出する必要がよくあります。場合によっては、ギフトを贈るためにユーザー リストから数人の幸運なユーザーをランダムに選択する必要があります。または、メニュー配列からいくつかの料理を推奨料理としてランダムに選択する必要があります。この記事では、PHPで配列からランダムに複数の要素を抽出する方法を紹介します。

方法 1: shuffle 関数と array_slice 関数を使用する

shuffle 関数は、配列の要素を分割し、配列内の各要素をランダムに再配置することができます。次に、array_slice 関数を使用して、配列から特定の数の要素を抽出します。この方法はシンプルで理解しやすく、小さな配列に適しています。

コードは次のとおりです:

<?php
$array = array(&#39;apple&#39;, &#39;banana&#39;, &#39;orange&#39;, &#39;watermelon&#39;, &#39;grape&#39;, &#39;pear&#39;);
shuffle($array);
$rand_keys = array_rand($array, 3);
$result = array_slice($array, $rand_keys[0], 3);
print_r($result);
?>

分析:

  1. 6 つの要素を含む配列 $array を定義します。
  2. シャッフル関数を使用して、配列要素をランダムに並べ替えます。
  3. array_rand 関数を使用して、スクランブル配列から 3 つの要素のインデックス位置をランダムに抽出します。
  4. array_slice 関数を使用して、配列から 3 つのランダムな要素を取得します。
  5. 最後に結果を出力します。

方法 2: array_rand 関数を使用する

array_rand 関数は、配列から 1 つ以上のランダムな要素のインデックスを直接返すことができます。この方法は大規模な配列で機能します。

コードは次のとおりです:

<?php
$array = array(&#39;apple&#39;, &#39;banana&#39;, &#39;orange&#39;, &#39;watermelon&#39;, &#39;grape&#39;, &#39;pear&#39;);
$rand_keys = array_rand($array, 3);
$result = array();
foreach ($rand_keys as $key) {
    $result[] = $array[$key];
}
print_r($result);
?>

分析:

  1. 6 つの要素を含む配列 $array を定義します。
  2. array_rand 関数を使用して、配列から 3 つのランダムな要素のインデックス位置を取得します。
  3. foreach ループを使用して、ランダムに取得した要素を結果配列に追加します。
  4. 最後に結果を出力します。

方法 3: mt_rand 関数を使用する

mt_rand 関数は、指定された範囲内のランダムな整数を返すことができるため、ランダムな配列キーの生成に使用できます。この方法は比較的非効率的であり、小さな配列に適しています。

コードは次のとおりです:

<?php
$array = array(&#39;apple&#39;, &#39;banana&#39;, &#39;orange&#39;, &#39;watermelon&#39;, &#39;grape&#39;, &#39;pear&#39;);
$keys = array_keys($array);
$total = count($keys);
$pick_num = 3;
$rand_keys = array();
$result = array();
while (count($rand_keys) < $pick_num) {
    $rand_keys[] = $keys[mt_rand(0, $total-1)];
}
foreach ($rand_keys as $key) {
    $result[] = $array[$key];
}
print_r($result);
?>

分析:

  1. 6 つの要素を含む配列 $array を定義します。
  2. array_keys 関数を使用して、キーのコレクションである配列 $key を取得します。
  3. 配列 $total の合計長を取得します。
  4. 取り出す要素の数を示す変数 $pick_num を定義します。
  5. $rand_keys 配列を定義して、ランダムに取得したキーを保存します。
  6. ループを使用して実際のランダム キーを生成します。$rand_key の数が $pick_num に達したら、ループから抜け出します。
  7. foreach ループを使用して、ランダムに取得した要素を結果配列に追加します。
  8. 最後に結果を出力します。

上記は、PHP 配列から複数の要素をランダムに選択する 3 つの方法です。大きな配列の場合はarray_rand関数を選択するなど、状況に応じてさまざまな方法を選択できます。この操作は単純に見えますが、製品体験を向上させ、楽しさを高め、ユーザー体験を豊かにすることができます。

以上がPHP配列から複数の要素をランダムに抽出する方法(3つの方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。