Vous êtes ici Codes PHP et MySQL > Fonctions > Obtenir toute les combinaisons possibles

 

Obtenir toute les combinaisons possibles

Chercher toute les compositions de combinaisons possible avec le nombre d'éléments souhaités.
La fonction est récursive et facile à mettre en place. Enjoy!
 
nixi54
[5] sources en PHP voir
Code vu 4958 fois
Enregistré le 26 Déc 2007
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Obtenir toute les combinaisons possibles
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Obtenir toute les combinaisons possibles                  */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts317-PHP.htm              */
/* Auteur         : nixi54                                                    */
/* Date édition   : 26 Déc 2007                                               */
/*                                                                            */
/******************************************************************************/



// le tableau qui contient les éléménts
$tableau_elements = array("el1","el2","el3","el4");
// compte le nombre d'éléménts
$n count($tableau_elements);
// declare le tableau de sortie
$sortie = array(); // Tableau de sortie

   function liste_combinaison($debut,$tags,$profondeur) {

   global $sortie;
   if($profondeur == 0) {
      array_push($sortie,$debut);
      return;
   }
   $n count($tags);
   for($i=0;$i<$n;$i++) {
      liste_combinaison($debut.$tags[$i].",",array_slice($tags,$i+1),$profondeur-1);
   }
  }
  for($i=1;$i<=$n;$i++) { liste_combinaison(",",$tableau_elements,$i);
  }

// sortie
echo '<pre>';
print_r($sortie);
echo '</pre>';

// affiche
/*
Array
(
    [0] => ,el1,
    [1] => ,el2,
    [2] => ,el3,
    [3] => ,el4,
    [4] => ,el1,el2,
    [5] => ,el1,el3,
    [6] => ,el1,el4,
    [7] => ,el2,el3,
    [8] => ,el2,el4,
    [9] => ,el3,el4,
    [10] => ,el1,el2,el3,
    [11] => ,el1,el2,el4,
    [12] => ,el1,el3,el4,
    [13] => ,el2,el3,el4,
    [14] => ,el1,el2,el3,el4,
)
*/


?>

 

Fonctions du code

: Crée un tableau - (PHP 4, PHP 5)
: Compte le nombre d'éléments d'un tableau ou le nombre de propriétés...
: Empile un ou plusieurs éléments à la fin d'un tableau - (PHP 4, PHP 5)
: Extrait une portion de tableau - (PHP 4, PHP 5)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: Affiche des informations lisibles pour une variable - (PHP 4, PHP 5)
Commentaire
Bonjour :)

Merci pour cette source ! J'en avais grandement besoin ;)

Par contre, là les entrées ne peuvent pas être utilisées plusieurs fois...

Par exemple, si on met A B C, ça va donner :
A, B, C ;
AB, AC, BC,
ABC.

J'aimerai que les entrées puissent être utilisées plusieurs fois, par exemple :

A, B, C ;
AA, AB, AC, BA, BB, BC ;
AAA, AAB, AAC, ABA, ABB, ABC, ACA, ACB, ACC, BAA, BAB, BAC, etc

Si quelqu'un peut m'aider... Je l'en remercie par avance ;)
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Fonctions

 
 

PHP

 
 
 
PHP 5 Livre PHP

PHP 5
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité