PHP : récupérer données CSV dans array

Résolu
Blanc57 Messages postés 369 Date d'inscription   Statut Membre Dernière intervention   -  
Blanc57 Messages postés 369 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je viens juste de me mettre à PHP car j'ai un travail à rendre pour lequel PHP ferait l'affaire grâce à JPGraph pour la génération de graph de Gantt.

Je cherche à récupérer des données dans un CSV et les exploiter dans un array.
J'en suis là :

$fichier = file("/tmp/2data.txt");
$total = count($fichier);

for($i = 0; $i < $total; $i++)
{
$lin = $fichier[$i];
list($varA, $varB, $varC) = split(';', $lin);
$csvdat = array(
array($i, $varA, $varB, $varC),
);
}

for($j = 0; $j < $total; $j++)
{
$data = array(
array( $csvdat[$j][0], $csvdat[$j][1], $csvdat[$j][2], addTime($csvdat[$j][2], $csvdat[$j][3])),
//array(1," Label 2", "2001-01-26 10:00","08:00"),
//array(2," Label 3", "2001-01-26","10:00")
);
}


mais naturellement, cela ne fonctionne pas.
En fait mes données CSV d'origine sont du type :
LABEL;AAAA-MM-JJ HH:MM;HH:MM

Et je souhaiterais les retrouver dans l'array '$data', un peu comme les exemples commentés ci-dessus.

Merci d'avance à tout ceux qui pourront m'apporter leur aide.

A voir également:

2 réponses

Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
Il y a un problème avec le remplissage des tableaux, ça devrait être mieux comme ça :
$fichier = file("/tmp/2data.txt");
$total = count($fichier);

$csvdat = array(); //définition du tableau à remplir

for($i = 0; $i < $total; $i++){
  $lin = $fichier[$i];
  list($varA, $varB, $varC) = split(';', $lin);
  $csvdat[] = array($i, $varA, $varB, $varC); //ajout d'un élément au tableau, l'élément contient un tableau
}

$data = array(); // idem...

for($j = 0; $j < $total; $j++)
  $data[] = array( $csvdat[$j][0], $csvdat[$j][1], $csvdat[$j][2], AddTime($csvdat[$j][2], $csvdat[$j][3]));


Ou alors :
$fichier = file("/tmp/2data.txt");
$total = count($fichier);

$data = array();

for($i = 0; $i < $total; $i++){
  $lin = $fichier[$i];
  list($varA, $varB, $varC) = split(';', $lin);
  $data[] = array( $i,  $varA, $varB,  AddTime($varB, $varC));
}
4
Blanc57 Messages postés 369 Date d'inscription   Statut Membre Dernière intervention   73
 
Merci beaucoup pour ton aide Flashy Joe, c'est exactement ce qu'il me fallait...

Je me suis encore cassé la tête une heure pour faire tourner JPGraph mais à présent, j'ai réussit à faire ce que je souhaitais et tout fonctionne.

C'est en grande partie grâce à toi car sans ton aide je me serais encore cassé la tête sur cette histoire d'array...

Merci encore.
1