WRInaute occasionnel
Salut !
Petit problème d'algo qui a l'air tout bête, je patauge un peu.
J'ai un gros tableau contenant des "sous-tableaux":
'aimerais, à partir de ces données, créér un autre tableau, contenant toutes les combinaisons comportant un élément de chaque sous-tableau possible.
C'est à dire : 1-a-X , 1-a-Y, 1-a-Z, 1-b-X, 1-b-Y, ..... , 2-c-Z
...
On m'a répondu de faire :
Ce qui effectivement, marche très bien avec 3 sous tableaux...
Mais si j'ai un $tableau[3], $tableau[4]...
J'aimerais généraliser ça.
Je pense, après y avoir réfléchi, qu'il faut utiliser une fonction récursive.
J'en suis arrivé là :
C'est au niveau du "echo $value" que je bloque, en effet, je n'arrive pas à récupérer l'ensemble des valeurs précédentes...
Quelqu'un aurait une piste où me lancer ? (un foreach ? un while ?)
Petit problème d'algo qui a l'air tout bête, je patauge un peu.
J'ai un gros tableau contenant des "sous-tableaux":
Code:
Array (
[0] => Array (
[0] => 1
[1] => 2
)
[1] => Array (
[0] => a
[1] => b
[2] => c
)
[2] => Array (
[0] => X
[1] => Y
[2] => Z
)
)
C'est à dire : 1-a-X , 1-a-Y, 1-a-Z, 1-b-X, 1-b-Y, ..... , 2-c-Z
...
On m'a répondu de faire :
Code:
foreach($tableau[0] AS $firstcarac) {
foreach($tableau[1] AS $secondcarac) {
foreach($tableau[2] AS $thirdcarac) {
echo "$firstcarac - $secondcarac - $thirdcarac <br>";
}
}
}
Mais si j'ai un $tableau[3], $tableau[4]...
J'aimerais généraliser ça.
Je pense, après y avoir réfléchi, qu'il faut utiliser une fonction récursive.
J'en suis arrivé là :
Code:
function for_each ($a, $nCurrent, $nLimit) {
global $aRef, $nDepth;
while($nCurrent < $nLimit) {
foreach ($a[$nCurrent] as $value) {
echo "$value<br />";
}
$nCurrent++;
for_each($a, $nCurrent, $nLimit);
}
return $aRef;
}
// $a est le tableau décrit au début du post
$nLimit = count($a);
Quelqu'un aurait une piste où me lancer ? (un foreach ? un while ?)