Heim  >  Artikel  >  Backend-Entwicklung  >  Wie generiert man alle Kombinationen aus einem 1D-Array in PHP mithilfe einer rekursiven Tiefensuche?

Wie generiert man alle Kombinationen aus einem 1D-Array in PHP mithilfe einer rekursiven Tiefensuche?

DDD
DDDOriginal
2024-10-30 18:32:02695Durchsuche

How to Generate All Combinations from a 1D Array in PHP Using a Recursive Depth-First Search?

Erhalten aller Kombinationen eines 1D-Arrays

Die Aufgabe, alle erreichbaren Kombinationen aus einem eindimensionalen Array zusammenzustellen, kann durch die Verwendung von a gelöst werden rekursive Methode. Dieser Ansatz umfasst einen Tiefensuchansatz, der jede mögliche Kombination untersucht und gleichzeitig die Integrität der Anordnung jedes Elements beibehält.

Betrachten Sie den folgenden PHP-Code, der die oben genannte Aufgabe effektiv erledigt:

<code class="php"><?php

$array = array('Alpha', 'Beta', 'Gamma', 'Sigma');

function depth_picker($arr, $temp_string, &$collect) {
    if ($temp_string != "") 
        $collect []= $temp_string;

    for ($i=0, $iMax = sizeof($arr); $i < $iMax; $i++) {
        $arrcopy = $arr;
        $elem = array_splice($arrcopy, $i, 1); // removes and returns the i'th element
        if (sizeof($arrcopy) > 0) {
            depth_picker($arrcopy, $temp_string ." " . $elem[0], $collect);
        } else {
            $collect []= $temp_string. " " . $elem[0];
        }   
    }   
}

$collect = array();
depth_picker($array, "", $collect);
print_r($collect);

?></code>

Diese Implementierung funktioniert, indem sie das Eingabearray rekursiv durchläuft und jedes Element und seine möglichen Auswirkungen auf den gesamten Kombinationssatz analysiert. Wenn ein Element in die Kombination aufgenommen wird, wird zur weiteren Untersuchung ein neues Array ohne dieses Element erstellt. Dieser Prozess wird fortgesetzt, bis alle Elemente untersucht und das gesamte Spektrum an Kombinationen erfasst ist.

Mit diesem Ansatz können Sie erfolgreich jede mögliche Kombination aus dem bereitgestellten 1D-Array abrufen und so die Anforderungen an die Beibehaltung der Originalsequenz erfüllen und mit unterschiedlichen Arrangements.

Das obige ist der detaillierte Inhalt vonWie generiert man alle Kombinationen aus einem 1D-Array in PHP mithilfe einer rekursiven Tiefensuche?. 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