PHP : récupérer données CSV dans array
Résolu
Blanc57
Messages postés
377
Statut
Membre
-
Blanc57 Messages postés 377 Statut Membre -
Blanc57 Messages postés 377 Statut Membre -
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.
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.
2 réponses
-
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)); } -
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.