Maison > développement back-end > tutoriel php > 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
Libérer: 2024-11-22 08:46:10
original
323 Les gens l'ont consulté

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

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 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