OVH Cloud OVH Cloud

fichier csv et manipulation de tableau

1 réponse
Avatar
***lenay***
bonjour, je suis débutante en php (donc je connais pas tres bien toutes les
fonctions)

Je cherche à manipuler le contenu d'un fichier csv dans un tableau.
J'utilise pour cela la fonciton fgetcsv(fichier, taille, separateur) qui me
renvoie tout le fichier ligne par ligne (avec un while).

Je voudrais pouvoir manipuler ce tableau par ligne et par colonnes. J'arrive
facilement à isloer une colonne, mais comment faire pour isloer une ligne ?

voici le code utilisé :

<html>
<body>
<table border="1">

<?php
//ouverture du fichier a traiter
$fp = fopen ("result.csv","r");

//affichage du tableau
while ($data = fgetcsv ($fp, 1000, ";")) {
$num = count ($data);
print "<tr>";
for ($c=0; $c < $num; $c++) {
print "<td>".$data[$c]. "</td>";
}
echo'</tr>';
}

//affichage de la colonne 1 du tableau :
while ($data = fgetcsv ($fp, 1000, ";")) {
print "<tr>";
print "<td>".$data[0]."</td>";
echo'</tr>';
}

//fermeture du fichier result.csv
fclose ($fp);
?>

</table>
</body>
</html>

Merci pour vos réponses.
lenay

1 réponse

Avatar
Taum
Bonjour,

Le plus simple me semble être l'utilisation d'un tableau a 2 dimensions:

---
<?php
//ouverture du fichier a traiter
$fp = fopen ("result.csv","r");

//analyse du fichier, création du tableau a 2 dimensions
$i = 0;
$tableau = array();
while ($data = fgetcsv ($fp, 1000, ";")) {
$num = count($data);
for ($c = 0; $c < $num; $c++) {
$tableau[$i][$c];
}
$i++;
}

//nous avons donc un tableau de $i lignes et $num colonnes

echo "<table><tr>";
//affichage de la première ligne:
for ($c = 0 ; $c < $num ; $c++) {
echo "<td>".$tableau[0][$c]."</td>";
}
echo "</tr></table>";

//fermeture du fichier result.csv
fclose ($fp);
?>
---

Donc pour récupérer une donnée du tableau tu utilise:
$tableau[i][j] avec i=numéro de la ligne et j=numéro de la colonne.

J'espère que je n'ai rien oublié.
a+