Heim > Backend-Entwicklung > PHP-Tutorial > [Algorithmus] PHP führt Arrays nach dem Zufallsprinzip zusammen und behält die ursprüngliche Reihenfolge bei

[Algorithmus] PHP führt Arrays nach dem Zufallsprinzip zusammen und behält die ursprüngliche Reihenfolge bei

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-07-29 09:11:29
Original
1048 Leute haben es durchsucht

Szenario

Ursprüngliche Beitragsliste A, und jetzt müssen Sie neues Geschäft B in A fördern, Sie müssen die Daten von B in Liste A im Verhältnis 1:1 zufällig mischen, aber Sie Sie müssen sowohl A als auch B behalten. Die Originaldaten der Liste werden sortiert. Einzelheiten entnehmen Sie bitte den folgenden Beispielen.

Prinzip

  1. Ermitteln Sie die Gesamtzahl der Elemente N;
  2. für Schleife N-mal und erhalten Sie Zufallszahlen;
  3. Erhalten Sie A von Anfang an basierend auf den Zufallszahlen. Oder den Wert von B, in ein neues Array verschieben

Code:

<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>
Nach dem Login kopieren

Beispiel:

<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>
Nach dem Login kopieren

Das Obige stellt den [Algorithmus] PHP vor, der Arrays nach dem Zufallsprinzip zusammenführt und die ursprüngliche Reihenfolge beibehält, einschließlich des Inhalts. Ich hoffe, dass er Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird.

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Array zu Array
Aus 1970-01-01 08:00:00
0
0
0
PHP-Array
Aus 1970-01-01 08:00:00
0
0
0
Array
Aus 1970-01-01 08:00:00
0
0
0
PHP-Array-Transformation
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage