ho questa matrice:Tutte le possibilità a matrice 2D
$array = array
(
array('1', '2', '3'),
array('!', '@'),
array('a', 'b', 'c', 'd'),
);
e voglio sapere tutto combinazione di caratteri di sub-array .. per esempio:
1!a
1!b
1!c
1!d
[email protected]
[email protected]
[email protected]
[email protected]
2!a
2!b
2!c
2!d
[email protected]
[email protected]
...
Attualmente sto avendo questo codice:
for($i = 0; $i < count($array[0]); $i++)
{
for($j = 0; $j < count($array[1]); $j++)
{
for($k = 0; $k < count($array[2]); $k++)
{
echo $array[0][$i].$array[1][$j].$array[2][$k].'<br/>';
}
}
}
funziona, ma penso che sia brutto, e quando sto aggiungendo più array, devo aggiungere di più per. Sono abbastanza sicuro che ci sia un modo per farlo in modo ricorsivo, ma non so come iniziare/come farlo. Un piccolo aiuto potrebbe essere bello!
Grazie!
Come questo non si rompe in PHP 5? Voglio dire, funziona ... ma perché? Pensavo di aver ricordato di aver letto qualcosa sugli array e sugli oggetti sempre passati per riferimento ora ... non significherebbe che $ array viene mutilato? – cHao
@cHao: gli array non vengono passati per riferimento. Ecco perché uso '&' per passare esplicitamente l'array '$ result' per riferimento nel secondo esempio. –