Maison >développement back-end >tutoriel php >Comment une fonction récursive peut-elle générer toutes les combinaisons à partir de plusieurs tableaux ?

Comment une fonction récursive peut-elle générer toutes les combinaisons à partir de plusieurs tableaux ?

DDD
DDDoriginal
2024-12-23 22:41:14963parcourir

How Can a Recursive Function Generate All Combinations from Multiple Arrays?

Fonction récursive pour générer toutes les combinaisons d'éléments dans plusieurs tableaux

Cette question cherche une solution pour générer toutes les combinaisons possibles d'éléments à partir de plusieurs tableaux de différentes tailles.

La solution fournie utilise une combinaison de fonctions récursives qui prend un tableau de tableaux ($tableaux) en entrée. Il parcourt les tableaux de manière récursive, combinant les éléments de chaque tableau pour former toutes les combinaisons possibles.

La récursivité se déroule comme suit :

  • Si le tableau actuel ($arrays[$i] ) est le dernier du tableau d'entrée (c'est-à-dire $i == count($arrays) - 1), cela signifie que nous avons atteint le niveau final de récursivité et que nous revenons simplement ses éléments.
  • Sinon, elle appelle la fonction de manière récursive sur les tableaux restants à partir de l'index suivant ($arrays[$i 1]).
  • La fonction parcourt ensuite chaque élément du tableau actuel ($arrays[$i]) et le combine avec chacune des combinaisons obtenues à partir de l'appel récursif.
  • Ce processus se poursuit de manière récursive jusqu'à ce que tous les tableaux ont été traitées, ce qui donne toutes les combinaisons possibles.
  • Enfin, la fonction renvoie les combinaisons générées sous forme de tableau.

Un exemple d'utilisation de la fonction est fourni pour démontrer son application à générer des combinaisons à partir de trois tableaux (arrayA, arrayB et arrayC). Les combinaisons résultantes sont imprimées dans le format souhaité.

Cette solution récursive génère efficacement toutes les combinaisons possibles d'éléments de plusieurs tableaux, quel que soit leur nombre ou leur taille.

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