Page 1 sur 1

PHP sous ensemble d'un array

Posté : 21 mars 2013, 18:39
par naruto61
bonjour,

j'aimerai creer une fonction qui me donerai les sous ensemble d'un array de taille quelconque, en enlevant l'ensemble vide et l'ensemble complet.
Par example

Code : Tout sélectionner

$array = array(A,B,C,D):
1.{A}
2. {B}
3. {C}
4. {D}
5. {AB}
6. {CD}
7. {AC}
8. {AD}
9. {BC}
10. {BD}
11. {ABC}
12. {ABD}
13. {BCD}
14. {ACD}

J'ai essayé mais quand la taille de l'array est superieur a 3, trop d'erreur apparaissent et cela deviens problematique.


merci pour vos reponse

Re: PHP sous ensemble d'un array

Posté : 21 mars 2013, 19:35
par sirakawa
C'est un problème trivial de combinaisons.
Une piste ici:
http://www.phpsources.org/scripts317-PHP.htm

Re: PHP sous ensemble d'un array

Posté : 22 mars 2013, 09:20
par naruto61
Merci pour ta reponse, je vais voir cela.

Re: PHP sous ensemble d'un array

Posté : 17 avr. 2013, 08:42
par naruto61
// 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>';
c'est le code que j'ai trouver sur le site fourni. Mais je ne le comprends pas vraiment. Pourriez vous m'aider a le 'decrypter' si possible.

Merci