ホームページ > バックエンド開発 > PHPチュートリアル > [アルゴリズム] PHP は配列をランダムにマージし、元の順序を維持します。

[アルゴリズム] PHP は配列をランダムにマージし、元の順序を維持します。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-29 09:11:29
オリジナル
1050 人が閲覧しました

シナリオ

元の投稿リスト A で、A で新しいビジネス B を推進する必要がある場合、リスト A に B のデータを 1:1 の比率でランダムに混ぜる必要がありますが、元のデータは維持する必要がありますリスト A と B の順序付け。詳細については、次の例を参照してください。

原理

  1. 要素の総数 N を取得します。
  2. N 回ループして乱数を取得します。
  3. 乱数に基づいて最初から A または B の値を取得し、それを新しい配列にプッシュします。

コード:

<code>//随机合并两个数组元素,保持原有数据的排序不变(即各个数组的元素在合并后的数组中排序与自身原来一致)
function shuffleMergeArray() {
    $mergeArray = array();
    $sum = count($array1) + count($array2);
    for ($k = $sum; $k > 0; $k--) {
        $number = mt_rand(1, 2);
        if ($number == 1) {
            $mergeArray[] = $array2 ? array_shift($array2) : array_shift($array1);
        } else {
            $mergeArray[] = $array1 ? array_shift($array1) : array_shift($array2);
        }
    }


    return $mergeArray;
}</code>
ログイン後にコピー

例:

<code>合并前的数组:
$array1 = array(1, 2, 3, 4);
$array2 = array('a', 'b', 'c', 'd', 'e');

合并后的数据:
$mergeArray = array (
  0 => 'a',
  1 => 1,
  2 => 'b',
  3 => 2,
  4 => 'c',
  5 => 'd',
  6 => 3,
  7 => 4,
  8 => 'e',
)</code>
ログイン後にコピー

上記は、[アルゴリズム] PHP が配列をランダムにマージし、元の順序を維持する方法を内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート