Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich alle Teilmengen eines Arrays in PHP effizient generieren?

Wie kann ich alle Teilmengen eines Arrays in PHP effizient generieren?

DDD
DDDOriginal
2024-11-17 18:58:02305Durchsuche

How Can I Efficiently Generate All Subsets of an Array in PHP?

Finden der Teilmengen eines Arrays in PHP

Das Bestimmen des Abschlusses für alle möglichen Teilmengen eines Arrays ist ein entscheidender Schritt im relationalen Datenbankdesign. Um sich nicht wiederholende Teilmengen in PHP zu finden, sollten Sie den folgenden Ansatz in Betracht ziehen:

Teilmengengenerierung mit array_merge

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

    foreach ($array as $element) {
        foreach ($results as $combination) {
            $results[] = [...$combination, $element];
        }
    }

    return $results;
}

$ATTRIBUTES = ['A', 'B', 'C', 'D'];
$SUBSETS = powerSet($ATTRIBUTES);

Diese Funktion verwendet array_merge, um alle möglichen Teilmengen, einschließlich der leeren Menge, zu generieren. Das resultierende $SUBSETS-Array enthält alle sich nicht wiederholenden Teilmengen, die in der Frage angefordert werden:

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

Diese Methode bietet eine prägnante und effiziente Lösung zum Auffinden von Teilmengen eines Arrays in PHP und macht sie auf verschiedene Daten anwendbar Analyse- und Datenbankdesignaufgaben.

Das obige ist der detaillierte Inhalt vonWie kann ich alle Teilmengen eines Arrays in PHP effizient 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