„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich in PHP alle möglichen Kombinationen und Permutationen von Elementen innerhalb eines eindimensionalen Arrays generieren?

Wie kann ich in PHP alle möglichen Kombinationen und Permutationen von Elementen innerhalb eines eindimensionalen Arrays generieren?

Veröffentlicht am 15.11.2024
Durchsuche:345

How can I generate all possible combinations and permutations of elements within a one-dimensional array in PHP?

PHP: So erhalten Sie alle möglichen Kombinationen eines eindimensionalen Arrays

In diesem Artikel befassen wir uns mit einer Methode zum Abrufen aller möglichen Kombinationen von Elementen darin ein eindimensionales Array in PHP. Im Gegensatz zu anderen Lösungen stellt dieser Ansatz sicher, dass sowohl Kombinationen als auch Permutationen berücksichtigt werden.

Problemstellung

Bei einem Array von Zeichenfolgen oder Zahlen besteht das Ziel darin, alle möglichen Kombinationen von Elementen zu generieren. unter Berücksichtigung unterschiedlicher Vereinbarungen. Beispielsweise sind „Alpha Beta“ und „Beta Alpha“ unterschiedliche Kombinationen, die in der Ausgabe enthalten sein sollten.

PHP-Lösung

Die bereitgestellte PHP-Lösung verwendet einen rekursiven Tiefensuchalgorithmus:

Aufschlüsselung der Lösung

  • Die Funktion „deep_picker“ wird mit dem anfänglichen Array, einer leeren Zeichenfolge und einer leeren Array-Referenz aufgerufen.
  • Sie führt eine rekursive Schleife aus durch das Array und fügt jedes Element am Ende der aktuellen Ergebniszeichenfolge hinzu.
  • Immer wenn die temporäre Zeichenfolge Elemente enthält, wird sie zum Ergebnisarray hinzugefügt.
  • Wenn noch Elemente darin übrig sind Im Eingabearray ruft sich die Funktion selbst mit dem aktualisierten Array und der temporären Zeichenfolge auf.
  • Wenn keine weiteren Elemente mehr vorhanden sind, wird die temporäre Zeichenfolge mit der vollständigen Kombination zum Sammelarray hinzugefügt.

Ausgabe

Der bereitgestellte Code erzeugt die folgende Ausgabe, die alle Kombinationen und Permutationen der Elemente im angegebenen Array enthält:

Array
(
    [0] =>  Alpha
    [1] =>  Alpha Beta
    [2] =>  Alpha Beta Gamma
    [3] =>  Alpha Beta Gamma Sigma
    [4] =>  Alpha Beta Sigma
    [5] =>  Alpha Beta Sigma Gamma
    [6] =>  Alpha Gamma
    [7] =>  Alpha Gamma Beta
    [8] =>  Alpha Gamma Beta Sigma
    [9] =>  Alpha Gamma Sigma
    [10] =>  Alpha Gamma Sigma Beta
    [11] =>  Alpha Sigma
    [12] =>  Alpha Sigma Beta
    [13] =>  Alpha Sigma Beta Gamma
    [14] =>  Alpha Sigma Gamma
    [15] =>  Alpha Sigma Gamma Beta
    [16] =>  Beta
    [17] =>  Beta Alpha
    [18] =>  Beta Alpha Gamma
    [19] =>  Beta Alpha Gamma Sigma
    [20] =>  Beta Alpha Sigma
    [21] =>  Beta Alpha Sigma Gamma
    [22] =>  Beta Gamma
    [23] =>  Beta Gamma Alpha
    [24] =>  Beta Gamma Alpha Sigma
    [25] =>  Beta Gamma Sigma
    [26] =>  Beta Gamma Sigma Alpha
    [27] =>  Beta Sigma
    [28] =>  Beta Sigma Alpha
    [29] =>  Beta Sigma Alpha Gamma
    [30] =>  Beta Sigma Gamma
    [31] =>  Beta Sigma Gamma Alpha
    [32] =>  Gamma
    [33] =>  Gamma Alpha
    [34] =>  Gamma Alpha Beta
    [35] =>  Gamma Alpha Beta Sigma
    [36] =>  Gamma Alpha Sigma
    [37] =>  Gamma Alpha Sigma Beta
    [38] =>  Gamma Beta
    [39] =>  Gamma Beta Alpha
    [40] =>  Gamma Beta Alpha Sigma
    [41] =>  Gamma Beta Sigma
    [42] =>  Gamma Beta Sigma Alpha
    [43] =>  Gamma Sigma
    [44] =>  Gamma Sigma Alpha
    [45] =>  Gamma Sigma Alpha Beta
    [46] =>  Gamma Sigma Beta
    [47] =>  Gamma Sigma Beta Alpha
    [48] =>  Sigma
    [49] =>  Sigma Alpha
    [50] =>  Sigma Alpha Beta
    [51] =>  Sigma Alpha Beta Gamma
    [52] =>  Sigma Alpha Gamma
    [53] =>  Sigma Alpha Gamma Beta
    [54] =>  Sigma Beta
    [55] =>  Sigma Beta Alpha
    [56] =>  Sigma Beta Alpha Gamma
    [57] =>  Sigma Beta Gamma
    [58] =>  Sigma Beta Gamma Alpha
    [59] =>  Sigma Gamma
    [60] =>  Sigma Gamma Alpha
    [61] =>  Sigma Gamma Alpha Beta
    [62] =>  Sigma Gamma Beta
    [63] =>  Sigma Gamma Beta Alpha
)
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3