Maison >développement back-end >tutoriel php >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 ?

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
DDDoriginal
2024-10-30 18:32:02758parcourir

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>

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!

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