Fichier texte et tableau a double entréé

mageek06 Messages postés 37 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 12 janvier 2011 - 30 nov. 2010 à 08:53
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 1 déc. 2010 à 10:26
Bonjour,

j'ai un fichier de la forme :

A|C|30|
B|D|100|
D|B|20|
B|A|150|
G|I|15|
A|G|40|
C|C|30|

J'aimerais créer un tableau a double dimension indexéb (par des chaines de car) par la premiere colonne et la seconde et alimenté par la troisieme ...

je n'ai aucune idée de comment faire malgré mes recherches !!

mageek

3 réponses

mageek06 Messages postés 37 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 12 janvier 2011
30 nov. 2010 à 11:10
J'ai commencé par cela :

$fic = data.txt;
$taille_fic = filesize("$fic");	

// si le fichier existe et qu'il n'est pas vide
if (file_exists("$fic") && ($taille_fic != 0))
{
$tab_fic = file("$fic");
$nb=count($tab_fic);
$i = 0;

while ($i < $nb) // Tant que l'on est pas à la fin du fichier
{
$tab_1 = explode('|', $tab_fic[$i]); // on explose la ligne à l'indice i
$tab_2 = explode('|', $tab_fic[$i+1]); // on explose la ligne à i+1

$nom = $tab_1[0];
$prenom = $tab_1[1];
$tps = $tab_1[2]


$tab = array();
if (isset($tab[$nom][$prenom]) // si le couple colonne - ligne existe
{ 
      $tab[$nom][$prenom] = $tab[$nom][$prenom] + $tps;  
}
else
{ 
      $tab[$nom][$prenom] = $tab[$nom][$prenom] // sinon on crée le couple colonne - ligne 
}



mageek
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
30 nov. 2010 à 16:50
bonjour
une piste
a++

// utilise sort();
//http://php.net/manual/en/function.sort.php

<?php
$fic = "data.txt";
$taille_fic = filesize($fic);	

// si le fichier existe et qu'il n'est pas vide
if (file_exists($fic) && ($taille_fic != 0))
{
$tab_fic = file($fic);
print_r($tab_fic);
echo '
';

$nb=count($tab_fic);
echo $nb.'
';

$i = 0;

    $t=array();
    foreach($tab_fic as $k => $v){
    //explode('|',$v,3);
    echo $v;
    $t[] = explode ("|",$v);
    }


echo '
';
echo '';
print_r($t);
echo '

';
}
        
// utilise sort(); 
//http://php.net/manual/en/function.sort.php      
?>
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
1 déc. 2010 à 10:26
Salut,


Un truc comme ça plutôt, non ?

$sContents = file($fic);
$tab = array();

foreach ($sContents as $line) {
    $aRes = str_getcsv($line, '|');
    if (false === array_key_exists($aRes[0], $tab))
        $tab[$aRes[0]] = array();

    array_push($tab[$aRes[0]], $aRes[2]);
}
echo '';
print_r($tab);
echo '

';


Cordialement,

Kohntark -
0
Rejoignez-nous