Maison  >  Article  >  développement back-end  >  Comment puis-je générer efficacement tous les sous-ensembles uniques d'un tableau en PHP ?

Comment puis-je générer efficacement tous les sous-ensembles uniques d'un tableau en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-22 08:46:10232parcourir

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

Recherche de sous-ensembles d'un tableau en PHP

La tâche consistant à trouver des sous-ensembles uniques d'un tableau peut être particulièrement difficile lorsqu'il s'agit d'un grand nombre d'éléments. Nous cherchons à créer un ensemble complet de sous-ensembles, en garantissant qu'aucune répétition ne se produise.

Par exemple, étant donné un tableau d'attributs {A, B, C, D}, nous souhaitons générer tous les sous-ensembles possibles, y compris les éléments individuels. et leurs combinaisons : {A, B, C, D, AB, AC, AD, BC, BD, CD, ABC, ABD, BCD, ABCD}.

Utilisation de la fusion de tableaux pour la génération d'ensembles de puissance

PHP fournit une solution compacte pour la génération d'ensembles de puissance à l'aide de la fonction array_merge.

function powerSet(array $array) : array {
    $results = [[]];

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

    return $results;
}

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

Le tableau $SUBSETS résultant contiendra tous les sous-ensembles non répétitifs du tableau d'origine.

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!

Déclaration:
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