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

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