Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich in PHP alle Kombinationen von Elementen aus mehreren Arrays generieren?

Wie kann ich in PHP alle Kombinationen von Elementen aus mehreren Arrays generieren?

Patricia Arquette
Freigeben: 2024-12-14 13:46:12
Original
723 Leute haben es durchsucht

How Can I Generate All Combinations of Items from Multiple Arrays in PHP?

Generieren aller Kombinationen von Elementen in mehreren Arrays in PHP

Die Aufgabe, alle Kombinationen von Elementen in mehreren Arrays zu finden, tritt bei der Programmierung häufig auf . Die Anzahl der Arrays und Elemente innerhalb jedes Arrays kann variieren.

Rekursive Lösung

Ein rekursiver Ansatz kann dieses Problem effektiv lösen. Die Funktion „kombinationen()“ bietet eine Lösung:

function combinations($arrays, $i = 0) {
    if (!isset($arrays[$i])) {
        return array();
    }
    if ($i == count($arrays) - 1) {
        return $arrays[$i];
    }

    // get combinations from subsequent arrays
    $tmp = combinations($arrays, $i + 1);

    $result = array();

    // concat each array from tmp with each element from $arrays[$i]
    foreach ($arrays[$i] as $v) {
        foreach ($tmp as $t) {
            $result[] = is_array($t) ? array_merge(array($v), $t) : array($v, $t);
        }
    }

    return $result;
}
Nach dem Login kopieren

Beispielverwendung

Betrachten Sie die Arrays:

$arrayA = array('A1','A2','A3');
$arrayB = array('B1','B2','B3');
$arrayC = array('C1','C2');
Nach dem Login kopieren

Um alle zu finden Kombinationen:

print_r(combinations(array($arrayA, $arrayB, $arrayC)));
Nach dem Login kopieren

Ausgabe:

Array
(
    [0] => A1
    [1] => B1
    [2] => C1
    [3] => A1
    [4] => B1
    [5] => C2
    [6] => A1
    [7] => B2
    [8] => C1
    [9] => A1
    [10] => B2
    [11] => C2
    [12] => A1
    [13] => B3
    [14] => C1
    [15] => A1
    [16] => B3
    [17] => C2
    [18] => A2
    [19] => B1
    [20] => C1
    [21] => A2
    [22] => B1
    [23] => C2
    [24] => A2
    [25] => B2
    [26] => C1
    [27] => A2
    [28] => B2
    [29] => C2
    [30] => A2
    [31] => B3
    [32] => C1
    [33] => A2
    [34] => B3
    [35] => C2
    [36] => A3
    [37] => B1
    [38] => C1
    [39] => A3
    [40] => B1
    [41] => C2
    [42] => A3
    [43] => B2
    [44] => C1
    [45] => A3
    [46] => B2
    [47] => C2
    [48] => A3
    [49] => B3
    [50] => C1
    [51] => A3
    [52] => B3
    [53] => C2
)
Nach dem Login kopieren

Diese Lösung stellt alle möglichen Kombinationen auf effiziente Weise bereit.

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP alle Kombinationen von Elementen aus mehreren Arrays generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage