par
Ghirahim » 10 juin 2015, 10:14
Bonjour bonsoir,
Je dois comparer deux fichiers A.csv et B.csv composés de login, nom et notes.
Les logins et les noms sont identiques dans les deux fichiers.
Je dois écraser les valeurs des notes en ne prenant que la meilleure
Par exemple si :
Note A = 11/20 et Note B = 18/20
alors le fichier A est écrasé et prendra la note de 18/20
A l'inverse
Note A = 19/20 et Note B = 12/20
Le fichier A garde la note de 19/20
Cependant quand je run mon script le contenu A est TOTALEMENT supprimé
Je crains que ce soit à cause d'une ouverture en écriture mais je ne suis pas sur
Pouvez vous m'aider ? Merci par avance
Code : Tout sélectionner
$openB = fopen("bis.csv", "r");
while (($data = fgetcsv($openB, 1000, ";")) !== FALSE)
{
$notesA[$data[0]] = $data;
}
fclose($openB);
$openA = fopen("toast.csv", "r");
while (($data = fgetcsv($openA, 1000, ";")) !== FALSE)
{
$line[0] = $data[0];
$line[1] = $data[1];
for ($i = 2; $i < 5; $i++)
{
$line[$i] = max($data[$i], $notesA[$data[0]][$i]);
}
$output[] = $line;
}
fclose($openA);
$openA = fopen("toast.csv", "w");
foreach ($output as $line)
{
fputcsv($openB, $line, ";");
}
fclose($openA);
Bonjour bonsoir,
Je dois comparer deux fichiers A.csv et B.csv composés de login, nom et notes.
Les logins et les noms sont identiques dans les deux fichiers.
Je dois écraser les valeurs des notes en ne prenant que la meilleure
Par exemple si :
Note A = 11/20 et Note B = 18/20
alors le fichier A est écrasé et prendra la note de 18/20
A l'inverse
Note A = 19/20 et Note B = 12/20
Le fichier A garde la note de 19/20
Cependant quand je run mon script le contenu A est TOTALEMENT supprimé
Je crains que ce soit à cause d'une ouverture en écriture mais je ne suis pas sur
Pouvez vous m'aider ? Merci par avance
[code]
$openB = fopen("bis.csv", "r");
while (($data = fgetcsv($openB, 1000, ";")) !== FALSE)
{
$notesA[$data[0]] = $data;
}
fclose($openB);
$openA = fopen("toast.csv", "r");
while (($data = fgetcsv($openA, 1000, ";")) !== FALSE)
{
$line[0] = $data[0];
$line[1] = $data[1];
for ($i = 2; $i < 5; $i++)
{
$line[$i] = max($data[$i], $notesA[$data[0]][$i]);
}
$output[] = $line;
}
fclose($openA);
$openA = fopen("toast.csv", "w");
foreach ($output as $line)
{
fputcsv($openB, $line, ";");
}
fclose($openA);
[/code]