Tableau de deux dimension

Eléphant du PHP | 72 Messages

08 janv. 2009, 11:12

Bonjour à tous

Ma question est simple mais les exemples du net ne m'ont pas aidé à satisfaire ma demande.J'ai deux tableaux que jeparcours avec des foreach, je voudrais n'en fair eplus qu'un mais les codes sur le net parle de tableau assocxiatif.

Voici les deux tableau à une dimension que j'ai :
$aMyArray=array($iChoixCheminCarte1,$iChoixCheminCarte2,$iChoixCheminCarte3,$iChoixCheminCarte4,$iChoixCheminCarte5);
	foreach($aMyArray as $sClef){
		wb_set_image( $sClef, $iImages);
	}
    unset($aMyArray,$iImages);//libération des ressources
	
	$aMyArray=array($iCancel1,$iCancel2,$iCancel3,$iCancel4,$iCancel5);
	foreach($aMyArray as $sClef){
		wb_set_image( $sClef, $iImagesCancel);
	}
    unset($aMyArray,$iImagesCancel);//libération des ressources
J'aimerais maintenant n'en faire plus qu'un .Je suis donc obligé de passer par un tableau à deux dimensions mais comment faire??
merci d'avance[/code]

Mammouth du PHP | 1353 Messages

08 janv. 2009, 11:51

Bonjour,

Tu peux tout simplement te servir des clefs du tableau pour faire ce que tu veux, ainsi au lieu d'avoir des $aMyArray[0], $aMyArray[1]... tu auras des $aMyArray[$iChoixCheminCarte1] et les valeurs associées, tu auras donc le tout dans une boucle :
$aMyArray=array($iChoixCheminCarte1=>$iCancel1,$iChoixCheminCarte2=>$iCancel2,$iChoixCheminCarte3=>$iCancel3,$iChoixCheminCarte4=>$iCancel4,$iChoixCheminCarte5=>$iCancel5);

foreach($aMyArray as $choix=>$cancel){ 
        //traitement des données avec $choix et $cancel
       } 
unset($aMyArray);//libération des ressources 
Maintenant dans ton code je comprend pas bien l'intéret, tu peux aussi simplement ajouter les éléments à la suite dans ton tableau, grâce à la fonction array_push() ou l'utilisation de
$aMyArray[] = $iCancel1; //ajoute l'élément au tableau à la suite des données existantes
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 72 Messages

08 janv. 2009, 12:24

Merci pour ta reponse le code marche.

Je connnais l'utilisation de ta deuxieme solution mais le probleme c'est que si je procede comme tu dis je devrais tester la valeur de la clef et en fonction de celle ci faire le traitement adequat.

En effet l'image que je charge n'est pas la meme suivant la clef

grosso modo

$aMyArray[]=$iChoixCheminCarte1;
$aMyArray[]=$Cancel1;
$aMyArray[]=$Cancel2;
$aMyArray[]=$Cancel3;

foreach($aMyArray as $sValeur) {
 if($sValeur==... OR ..){

wb_set_image( image numero1);
}elseif($sValeur==... OR){

}


en plus les variables dans mes tableaux font appel à des methodes

par exemple:
$iChoixCheminCarte1=wb_create_control($iOnglet, ImageButton, '', 270, 45, 25, 20, ChoixCheminCarte1, 0x00000000, 0, 2);
Comprends tu ?

je voulais savoir comment faire pour instancier un tableau avec trois valeurs representant chacune des variables

Mammouth du PHP | 1353 Messages

08 janv. 2009, 12:35

A vrai dire non je comprend pas vraiment ;)

Mais pour mettre plusieurs variables dans ce cas, pourquoi ne pas faire un tableau de tableau ?

Par exemple :
$aMyArray[] = array($iChoixCheminCarte1,$Cancel1,$valeur1);
$aMyArray[] = array($iChoixCheminCarte2,$Cancel2,$valeur2);

foreach($aMyArray as $images) {
      foreach($images as $sClef) {
            //traitement
            }
      }
Cela te permet d'avoir autant de valeur que tu veux par image et ici je ne joue pas sur les clefs du tableau mais tu pourrais le faire en plus...Désolé si ça ne répond pas à ta question mais en tous cas cette méthode permet d'avoir de multiples valeurs dans un tableau...
Tell me and I forget. Teach me and I remember. Involve me and I learn.