En algo pur avec fonction récursive, je dirais un truc comme ça :
Code :
- <?php
- function foo (&tab, $keys, $mots) {
- if (count($keys) == 0) {
- echo implode(' ', $mots). "\n";
- return;
- }
- $key = array_shift($keys);
- foreach ($tab[$key] as $e) {
- $tmots = $mots;
- $tmots[] = $e;
- foo($tab, $keys, $tmots);
- }
- }
- 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