Comment générer toutes les combinaisons à partir d'un tableau 1D en PHP à l'aide d'une recherche récursive en profondeur d'abord ?

DDD
Libérer: 2024-10-30 18:32:02
original
691 Les gens l'ont consulté

How to Generate All Combinations from a 1D Array in PHP Using a Recursive Depth-First Search?

Obtention de toutes les combinaisons d'un tableau 1D

La tâche d'assembler toutes les combinaisons possibles à partir d'un tableau unidimensionnel peut être réalisée en utilisant un méthode récursive. Cette approche englobe une approche de recherche approfondie, explorant toutes les combinaisons possibles tout en maintenant l'intégrité de la disposition de chaque élément.

Considérez le code PHP suivant, qui gère efficacement la tâche susmentionnée :

<code class="php"><?php

$array = array('Alpha', 'Beta', 'Gamma', 'Sigma');

function depth_picker($arr, $temp_string, &$collect) {
    if ($temp_string != "") 
        $collect []= $temp_string;

    for ($i=0, $iMax = sizeof($arr); $i < $iMax; $i++) {
        $arrcopy = $arr;
        $elem = array_splice($arrcopy, $i, 1); // removes and returns the i'th element
        if (sizeof($arrcopy) > 0) {
            depth_picker($arrcopy, $temp_string ." " . $elem[0], $collect);
        } else {
            $collect []= $temp_string. " " . $elem[0];
        }   
    }   
}

$collect = array();
depth_picker($array, "", $collect);
print_r($collect);

?></code>
Copier après la connexion

Cette implémentation fonctionne en parcourant le tableau d'entrée de manière récursive, en analysant chaque élément et son impact potentiel sur l'ensemble de combinaison global. Lorsqu'un élément est inclus dans la combinaison, un nouveau tableau sans cet élément est créé pour une exploration plus approfondie. Ce processus se poursuit jusqu'à ce que tous les éléments soient examinés et que le spectre complet des combinaisons soit capturé.

En employant cette approche, vous pouvez récupérer avec succès toutes les combinaisons possibles à partir du tableau 1D fourni, satisfaisant ainsi aux exigences de conservation de la séquence d'origine. et présentant des arrangements distincts.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!