PHP sous ensemble d'un array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP sous ensemble d'un array

Re: PHP sous ensemble d'un array

par naruto61 » 17 avr. 2013, 08:42

// 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

Re: PHP sous ensemble d'un array

par naruto61 » 22 mars 2013, 09:20

Merci pour ta reponse, je vais voir cela.

Re: PHP sous ensemble d'un array

par sirakawa » 21 mars 2013, 19:35

C'est un problème trivial de combinaisons.
Une piste ici:
http://www.phpsources.org/scripts317-PHP.htm

PHP sous ensemble d'un array

par naruto61 » 21 mars 2013, 18:39

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