OVH Cloud OVH Cloud

tableau de tableau de tableau...

2 réponses
Avatar
kurtz le pirate
bonjour,

j'ai un problème d'imbrication de tableau. dans un script j'ai :

my @ViewDirection = ($fileLines[8],$fileLines[9],$fileLines[10]);

je mets donc 3 valeurs dans le tableau 'ViewDirection'. la, pas de
problèmes. mais plus loin je veux faire :

for ($i=1; $i<=$uResolution; $i++) {
for ($j=1; $j<=$vResolution; $j++) {

$TheSurface[$i][$j]=($fileLines[$indexInFile++],$fileLines[$indexInFile++
],$fileLines[$indexInFile++]);
}
}

donc mettre dans le tableau TheSurface un tableau de 3 valeurs :
$fileLines[$indexInFile++]

et la ça marche plus !

je peux bien sur faire :
$TheSurface[$i][$j][0]=$fileLines[$indexInFile++];
$TheSurface[$i][$j][1]=$fileLines[$indexInFile++];
$TheSurface[$i][$j][2]=$fileLines[$indexInFile++];

mais je trouve pas ça très 'élégant' et surtout figé car les dimensions
sont 'en dur' donc pas évolutif.

vous avez une solution ?
merci bien

2 réponses

Avatar
Laurent Wacrenier
kurtz le pirate écrit:
for ($i=1; $i<=$uResolution; $i++) {
for ($j=1; $j<=$vResolution; $j++) {

$TheSurface[$i][$j]=($fileLines[$indexInFile++],$fileLines[$indexInFile++
],$fileLines[$indexInFile++]);
}
}

donc mettre dans le tableau TheSurface un tableau de 3 valeurs :
$fileLines[$indexInFile++]

et la ça marche plus !


Mieux vaut utiliser des références de tableaux.

$TheSurface->[$i]->[$j] = [ $fileLines[$indexInFile++],
$fileLines[$indexInFile++],
$fileLines[$indexInFile++] ];

Avatar
Alex Marandon
On 2005-05-06, kurtz le pirate wrote:
$TheSurface[$i][$j]=($fileLines[$indexInFile++],$fileLines[$indexInFile++
],$fileLines[$indexInFile++]);


Bonjour,

Vous ne pouvez pas faire de tableaux de tableaux mais vous pouvez faire
des tableaux de références vers des tableaux, lire la page de
documentation perlreftut.

Dans votre exemple cela revient à remplacer les paranthèses par des
crochets, qui permettent de créer une référence anonyme vers un tableau.

--
Alex