Comment trouver efficacement tous les sous-ensembles non répétitifs d'un tableau en PHP ?

Susan Sarandon
Libérer: 2024-11-16 13:46:03
original
334 Les gens l'ont consulté

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

Rechercher des sous-ensembles d'un tableau en PHP

Lorsqu'il s'agit de bases de données relationnelles, déterminer la fermeture de tous les sous-ensembles d'attributs peut être une tâche complexe . Cet article explore comment trouver efficacement des sous-ensembles non répétitifs en PHP.

Définition du tableau

Nous définissons le tableau $ATTRIBUTES pour représenter l'ensemble des attributs :

$ATTRIBUTES = ['A', 'B', 'C', 'D'];
Copier après la connexion

Génération de sous-ensembles

Pour générer tous les sous-ensembles possibles de $ATTRIBUTES, nous exploitons la fonction powerSet :

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;
}
Copier après la connexion

Exemple d'utilisation

L'exécution de $subsets = powerSet($ATTRIBUTES) produira les sous-ensembles suivants :

[['',''],['A'],['B'],['A','B'],['C'],['A','C'],['B','C'],['A','B','C'],['D'],['A','D'],['B','D'],['A','B','D'],... ]
Copier après la connexion

Cela démontre comment nous pouvons trouver et stocker efficacement tous les sous-ensembles non répétitifs d'un tableau en PHP. Cette approche fournit une solution robuste pour gérer la fermeture des sous-ensembles d'attributs dans les schémas de bases de données relationnelles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal