2010-09-23 7 views
0

J'ai cette fonctionphp problème csv

function csv_to_array($filename='', $delimiter=',') 
{ 
    if(!file_exists($filename) || !is_readable($filename)) 
    { 
    echo "Not a valid file name"; 
     return FALSE; 

    } 
    $header = NULL; 
    $data = array(); 



    $fname = file($filename); 
    $a1 = array('username','fullname','email','dept'); 

    if (($handle = fopen($filename, 'r')) !== FALSE) 
    {  
     while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) 
     {  
      if(!$header) 
      { 
       $header = $row; 

       // print_r(array_diff_key($header,$array)) ; 
       } 
      else { 
       $data[] = array_combine($header, $row); 
       } 
     }  
     fclose($handle); 
    } 

    return $data; 

} 

Il retourne un tableau associatif. Mon fichier csv contient l'en-tête nom d'utilisateur fullname email département mais je rechercherai l'en-tête ne doit pas être mentione din le fichier csv comment je vais parler

+0

Vous avez donc besoin juste enlever la partie d'en-tête? –

Répondre

1

Que diriez-vous:

$seen_header = false; // initialize to false. 
$data = array(); 

// keep reading from the file till you have lines. 
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) { 

     // $seen_header will be false for the fist time. 
     if(!$seen_header) { 
       // don't add header to $data and make $seen_header true. 
       $seen_header = true; 
     }else{ 
       // non header..add it. 
       $data[] = $row; 
     }  
}