Les tableaux multidimensionnels me mènent la vie dure

Petit nouveau ! | 6 Messages

26 janv. 2007, 18:14

Bonjour,

Je voudrai classer par catégorie les données issus d'une requêtes SQL dans un tableau multidimensionnels.

Je m'explique :

Le résultat de ma requête renvoie un tableau sous cette forme :

Categories___+_____Compétences
Categ1______+_____Comp1
Categ1______+_____Comp2
Categ1______+_____Comp3
Categ2______+_____Comp4
Categ2______+_____Comp5
Categ3______+_____Comp6
...

Mon but est de créer un tableaux sous cette forme.

array(Categ1(Comp1,Comp2,Comp3),Categ2(Comp4,Comp5),Categ3(Comp6),...)

Donc j'ai essayer de créer des clés (les categ) de cet maniere :

Code : Tout sélectionner

... var arrayC=array(); ... while(list($categ,$comp)=$this->mySql->fetch_row()){ if(!array_key_exists($categ, $this->arrayC)){ $this->arrayC[]=$categ; } }
malheuresement quand j'essai de voir les clés existantes dans mon tableau

Code : Tout sélectionner

... printf(array_keys($this->arrayC)); ...
Il n'existe aucune clés dans le tableau, ca fait 1 heure que je retourne le problème dans tout les sens, que je cherche sur le forum les solutions déja proposées pour des problèmes de ce genre, mais rien n'y fait.

Donc je suppose que ca vien de moi :cry:.

J'attend votre aide avec impatience merci.

Eléphant du PHP | 120 Messages

26 janv. 2007, 19:19

pour remplir un tableau à partir d'un résultat de requete je te conseille d'utiliser array_push()
et ta requete il faudrait la montrer aussi :P
essaie d'abord de récupérer les clés des categ ensuite avise

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 janv. 2007, 20:06

En plus facile :
while($ligne=$this->mySql->fetch_row())
{ 
    $this->arrayC[$ligne[0]][]=$ligne[1];
}

// pour verifier le contenu 
<pre>
<?php var_dump($this->arrayC); ?>
</pre>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 6 Messages

26 janv. 2007, 21:39

Merci truc,

Ca roule impécable.