création de tableau associatif

création de tableau associatif - PHP - Programmation

Marsh Posté le 18-12-2006 à 10:09:31    

bonjour à tous. (PHP5)

 

Voila, je récupére un tableau via un csv. Dans ce CSV j'ais enregistré dans la première ligne, le nom des clef du tableau. J'arrive à récupérer ces clefs facilement, mais j'aimerais créer la structure du tableau aprés les avoir récupéré, et la je ne vois pas comment faire.

 

Alors quand je récupére la 1ere ligne, j'ais un tableau de x colonnes, contenant mes nom de colonnes. J'aimerais donc créer un tableau de x colonnes dont le nom est dispo dans le tableau.. et la je bloque.

 

Merci par avance pour vos lumières.
EDIt : Ra, pas CVS, mais CSV :D


Message édité par chani_t le 18-12-2006 à 11:03:15
Reply

Marsh Posté le 18-12-2006 à 10:09:31   

Reply

Marsh Posté le 18-12-2006 à 10:16:20    

Code :
  1. $numeroLligne = 0 ;
  2. $matrice = array();
  3. $t_col = ...; // tableau contennant le type des colonnes
  4. while($t_ligne = fgetscv($in)){
  5.      for($numeroColonne = 0 ; $numeroColonne < sizeof(t_col);$numeroColonne++)
  6.      {
  7.           $matrice[$numeroLigne][$t_col[$numeroColonne]] = $t_ligne[$numeroColonne];
  8.      }
  9.      $numeroLligne++;
  10. }


Message édité par flo850 le 18-12-2006 à 10:16:34
Reply

Marsh Posté le 18-12-2006 à 10:25:35    

A, ouais.. ok... ba je n'y avais pas pensais.. je pensais que ce serais plus une déclaration au début (avant de remplir le tableau... ) ba je vais tester ;) .. merci

Reply

Marsh Posté le 18-12-2006 à 10:41:18    

CVS ou CSV? Parcque comme tu parles de tableau, j'aurais plutôt pensé à CSV...
Si tu veux récupérer le nom des colonnes, y'a array_keys() qui est fait pour ça. Et pour le parcours d'un tableau, foreach(), c'est mieux.
 
Perso, quand je travaille sur des tableaux associatifs où chaque clé a pour valeur un tableau, je fais plutôt un truc du genre :  
 

Code :
  1. // Déclaration des données
  2. $Matrice = array(
  3.                        "NomCol1" => array(.....),
  4.                        "NomCol2" => array(....),
  5.                        ...
  6.                      );
  7. // Parcours
  8. foreach($Matrice["NomCol1"] as $Key => $CurrentValueCol1) {
  9.    
  10. }
  11. // Si je veux ajouter des valeurs
  12. $Matrice["NomCol1"][] = $NouvelleValeur;


 
 

Reply

Marsh Posté le 18-12-2006 à 11:02:34    

CSV :D, en effet  (c'est le lundi matin... et pis je me plante tout le temps... :p)
 
Pour récupérer les clefs, no soucy, c'étais pour recréer le tableau associatif

Reply

Marsh Posté le 18-12-2006 à 11:35:25    

chani_t a écrit :

CSV :D, en effet  (c'est le lundi matin... et pis je me plante tout le temps... :p)
 
Pour récupérer les clefs, no soucy, c'étais pour recréer le tableau associatif


 
ah ok, c'est pour le recréer. Mais je maintiens que tu devrais mettre les clés "noms de colonnes" en 1er indice dans ton tableau et non en 2ième. Bon après, faut voir ce que tu en fais comme traitement. Ma structure est très adaptée si tu travailles par colonne : genre, tu veux savoir si y'a un enregistrement qui contient telle valeur, tu utilises "in_array" sur le nom de ta colonne (alors qu'avec ta structure, faut d'abort lire ton tableau et mettre l'info de la colonne qui va bien dans un tableau temporaire). Inconvénient de ma structure, pour lire une ligne, faut faire autant d'accès que de colonnes...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed