"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je générer toutes les combinaisons et permutations possibles d’éléments dans un tableau unidimensionnel en PHP ?

Comment puis-je générer toutes les combinaisons et permutations possibles d’éléments dans un tableau unidimensionnel en PHP ?

Publié le 2024-11-15
Parcourir:814

How can I generate all possible combinations and permutations of elements within a one-dimensional array in PHP?

PHP : Comment obtenir toutes les combinaisons possibles d'un tableau unidimensionnel

Dans cet article, nous allons plonger dans une méthode pour récupérer toutes les combinaisons possibles d'éléments dans un tableau unidimensionnel en PHP. Contrairement à d'autres solutions, cette approche garantit que les combinaisons et les permutations sont prises en compte.

Énoncé du problème

Étant donné un tableau de chaînes ou de nombres, l'objectif est de générer toutes les combinaisons possibles d'éléments, en tenant compte des différentes dispositions. Par exemple, « Alpha Beta » et « Beta Alpha » sont des combinaisons distinctes qui doivent être incluses dans le résultat.

Solution PHP

La solution PHP fournie utilise un algorithme de recherche récursif en profondeur :

Décomposition de la solution

  • La fonction deep_picker est invoquée avec le tableau initial, une chaîne vide et une référence de tableau vide.
  • Elle boucle de manière récursive à travers le tableau, en ajoutant chaque élément à la fin de la chaîne de résultat actuelle.
  • Chaque fois que la chaîne temporaire contient des éléments, elle est ajoutée au résultat array.
  • S'il reste encore des éléments dans le tableau d'entrée, la fonction s'appelle elle-même avec le tableau et la chaîne temporaire mis à jour.
  • S'il ne reste plus d'éléments, la chaîne temporaire contenant le La combinaison complète est ajoutée au tableau de collecte.

Sortie

Le code fourni produit la sortie suivante, qui contient toutes les combinaisons et permutations des éléments dans le fichier donné. tableau :

Array
(
    [0] =>  Alpha
    [1] =>  Alpha Beta
    [2] =>  Alpha Beta Gamma
    [3] =>  Alpha Beta Gamma Sigma
    [4] =>  Alpha Beta Sigma
    [5] =>  Alpha Beta Sigma Gamma
    [6] =>  Alpha Gamma
    [7] =>  Alpha Gamma Beta
    [8] =>  Alpha Gamma Beta Sigma
    [9] =>  Alpha Gamma Sigma
    [10] =>  Alpha Gamma Sigma Beta
    [11] =>  Alpha Sigma
    [12] =>  Alpha Sigma Beta
    [13] =>  Alpha Sigma Beta Gamma
    [14] =>  Alpha Sigma Gamma
    [15] =>  Alpha Sigma Gamma Beta
    [16] =>  Beta
    [17] =>  Beta Alpha
    [18] =>  Beta Alpha Gamma
    [19] =>  Beta Alpha Gamma Sigma
    [20] =>  Beta Alpha Sigma
    [21] =>  Beta Alpha Sigma Gamma
    [22] =>  Beta Gamma
    [23] =>  Beta Gamma Alpha
    [24] =>  Beta Gamma Alpha Sigma
    [25] =>  Beta Gamma Sigma
    [26] =>  Beta Gamma Sigma Alpha
    [27] =>  Beta Sigma
    [28] =>  Beta Sigma Alpha
    [29] =>  Beta Sigma Alpha Gamma
    [30] =>  Beta Sigma Gamma
    [31] =>  Beta Sigma Gamma Alpha
    [32] =>  Gamma
    [33] =>  Gamma Alpha
    [34] =>  Gamma Alpha Beta
    [35] =>  Gamma Alpha Beta Sigma
    [36] =>  Gamma Alpha Sigma
    [37] =>  Gamma Alpha Sigma Beta
    [38] =>  Gamma Beta
    [39] =>  Gamma Beta Alpha
    [40] =>  Gamma Beta Alpha Sigma
    [41] =>  Gamma Beta Sigma
    [42] =>  Gamma Beta Sigma Alpha
    [43] =>  Gamma Sigma
    [44] =>  Gamma Sigma Alpha
    [45] =>  Gamma Sigma Alpha Beta
    [46] =>  Gamma Sigma Beta
    [47] =>  Gamma Sigma Beta Alpha
    [48] =>  Sigma
    [49] =>  Sigma Alpha
    [50] =>  Sigma Alpha Beta
    [51] =>  Sigma Alpha Beta Gamma
    [52] =>  Sigma Alpha Gamma
    [53] =>  Sigma Alpha Gamma Beta
    [54] =>  Sigma Beta
    [55] =>  Sigma Beta Alpha
    [56] =>  Sigma Beta Alpha Gamma
    [57] =>  Sigma Beta Gamma
    [58] =>  Sigma Beta Gamma Alpha
    [59] =>  Sigma Gamma
    [60] =>  Sigma Gamma Alpha
    [61] =>  Sigma Gamma Alpha Beta
    [62] =>  Sigma Gamma Beta
    [63] =>  Sigma Gamma Beta Alpha
)
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3