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
Patricia ArquetteOriginal
2024-12-14 13:46:12724Durchsuche

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;
}

Beispielverwendung

Betrachten Sie die Arrays:

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

Um alle zu finden Kombinationen:

print_r(combinations(array($arrayA, $arrayB, $arrayC)));

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
)

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!

Stellungnahme:
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