Heim >Backend-Entwicklung >PHP-Tutorial >Wie finde ich effizient alle sich nicht wiederholenden Teilmengen eines Arrays in PHP?

Wie finde ich effizient alle sich nicht wiederholenden Teilmengen eines Arrays in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-11-16 13:46:03434Durchsuche

How to Efficiently Find All Non-Repeating Subsets of an Array in PHP?

Teilmengen eines Arrays in PHP finden

Beim Umgang mit relationalen Datenbanken kann die Bestimmung des Abschlusses für alle Teilmengen von Attributen eine komplexe Aufgabe sein . In diesem Artikel wird untersucht, wie Sie sich nicht wiederholende Teilmengen in PHP effizient finden können.

Array definieren

Wir definieren das Array $ATTRIBUTES, um den Satz von Attributen darzustellen:

$ATTRIBUTES = ['A', 'B', 'C', 'D'];

Erzeugung von Teilmengen

Um alle möglichen Teilmengen von $ATTRIBUTES zu generieren, nutzen wir die PowerSet-Funktion:

function powerSet(array $array) : array {
    // Start with the empty set
    $results = [[]];

    // Iterate over the array elements
    foreach ($array as $element) {
        // Create new combinations by adding the element to existing combinations
        foreach ($results as $combination) {
            $results[] = [...$combination, $element];
        }
    }

    return $results;
}

Beispielverwendung

Durch Ausführen von $subsets = powerSet($ATTRIBUTES) werden die folgenden Teilmengen ausgegeben:

[['',''],['A'],['B'],['A','B'],['C'],['A','C'],['B','C'],['A','B','C'],['D'],['A','D'],['B','D'],['A','B','D'],... ]

Dies zeigt, wie wir alle sich nicht wiederholenden Teilmengen eines Arrays effizient finden und speichern können in PHP. Dieser Ansatz bietet eine robuste Lösung für den Umgang mit der Schließung von Attributteilmengen in relationalen Datenbankschemata.

Das obige ist der detaillierte Inhalt vonWie finde ich effizient alle sich nicht wiederholenden Teilmengen eines Arrays in PHP?. 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