Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1298 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Générer toutes les combinaisons d'un array muti dimensionnel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Générer toutes les combinaisons d'un array muti dimensionnel

n°2173386
vanquishV1​2
se coucher tard nuit
Posté le 30-01-2013 à 17:19:29  profilanswer
 

Salut,
 
3h que je cherche  :pt1cable:  
 
J'ai ceci (à la place de chiffres ce sont des mots mais c'est pour l'exemple) :

Code :
  1. Array
  2. (   
  3.     ['animaux'] => Array
  4.         (
  5.             [0] => 'chat'
  6.             [1] => 'chien'
  7.         )
  8.     ['bouffe'] => Array
  9.         (
  10.             [0] => 'croquettes'
  11.             [1] => 'plantes'
  12.         )
  13.     ['logement'] => Array
  14.         (
  15.             [0] => 'maison'
  16.             [1] => 'appartement'
  17.         )
  18. ...
  19. )


 
Il peut y avoir x d'Array de premier niveau et x valeurs dans chaques array et il peut y avoir par exemple 3 valeur dans les animaux mais 10 dans la bouffe et 2 dans le logement.
 
Je cherche un moyen qui m'affichera toutes les combinaisons possibles dans l'ordre des différents array.
 
Exemple :
chat croquettes maison
chat croquettes appartement
chat plantes maison
chat plantes appartement
etc.
 
Quelqu'un sait comment faire ça ? Je devient dingue et je n'arrive à rien
 
Merci


---------------
Bha ouais mais bon, m'enfin quoi...
mood
Publicité
Posté le 30-01-2013 à 17:19:29  profilanswer
 

n°2173896
czh
Posté le 02-02-2013 à 19:15:54  profilanswer
 

En algo pur avec fonction récursive, je dirais un truc comme ça :

Code :
  1. <?php
  2. function foo (&tab, $keys, $mots) {
  3.   if (count($keys) == 0) {
  4.     echo implode(' ', $mots). "\n";
  5.     return;
  6.   }
  7.   $key = array_shift($keys);
  8.   foreach ($tab[$key] as $e) {
  9.     $tmots = $mots;
  10.     $tmots[] = $e;
  11.     foo($tab, $keys, $tmots);
  12.   }
  13. }
  14. foo($tab, array_keys($tab), array());


 
Il est aussi possible de le faire en itératif mais la forme récursive est généralement toujours plus courte au niveau de l'écriture. Sinon il y a array_walk_recursive, faut voir si ça peut être utile.


Message édité par czh le 02-02-2013 à 19:18:26
n°2173938
vanquishV1​2
se coucher tard nuit
Posté le 03-02-2013 à 18:21:33  profilanswer
 

Merci beaucoup je teste demain au taf.
"Il est aussi possible de le faire en itératif mais la forme récursive est généralement toujours plus courte au niveau de l'écriture. "
J'ai pas compris :D
 
"Sinon il y a array_walk_recursive, faut voir si ça peut être utile"
Pour faire quoi de plus ?
 
Merci beaucoup à toi !


---------------
Bha ouais mais bon, m'enfin quoi...
n°2173939
vanquishV1​2
se coucher tard nuit
Posté le 03-02-2013 à 18:22:59  profilanswer
 

Merci beaucoup je teste demain au taf.
"Il est aussi possible de le faire en itératif mais la forme récursive est généralement toujours plus courte au niveau de l'écriture. "
J'ai pas compris :D
 
"Sinon il y a array_walk_recursive, faut voir si ça peut être utile"
Pour faire quoi de plus ?
 
Merci beaucoup à toi !


---------------
Bha ouais mais bon, m'enfin quoi...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Générer toutes les combinaisons d'un array muti dimensionnel

 

Sujets relatifs
Générer réponse à partir d'un WSDLGénérer des noms d'ArrayList dans un programme
ODBC FETCH ARRAYClass => comment manipuler un array ?
Tableau python vers array php ?$_GET, foreach et array
générer une suite de bits aléatoiregénérer un diagramme de collaboration dans StarUML
Générer une image à partir d'un fichier htmlPHP et Array
Plus de sujets relatifs à : Générer toutes les combinaisons d'un array muti dimensionnel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR