2016-04-02 4 views
-1

Ich habe eine Datei namens csvFile.csvWie ein Array aus einer CSV-Datei mit PHP erstellen, aber nicht mit fgetcsv

Erste Reihe ist:

Id; fechaAlta; DNI; CUIT; Apellido; Nombre; Direccion; CP; Tel1; Tel2; Sexo; mail; Ficha

zweite Reihe:

3; 2008-10-25; 33.360.466; 27333604665; PERE Z; SABRINA; RIVADAVIA 4543 Piso: 3 Depto: A Barrio: PARQUE LICEO Codigo Postal: 5000 Localidad: CORDOBA; 5000; 192.772.656; 47.881.752; F; [email protected]; 342

Ich brauche eine PHP-Funktion das erlaubt mir die Kontrolle über jedes Element in jeder Reihe.

Nun verwende ich die Funktion:

function readCSV($csvFile){ 
    $file_handle = fopen($csvFile, 'r'); 
    while (!feof($file_handle)) { 
     $line_of_text[] = fgetcsv($file_handle, 1024); 
    } 
    fclose($file_handle); 
    print_r($line_of_text); 
} 

Dann bekomme ich folgendes Ergebnis:

Array 
( 
[0] => Array ( 

[0] => Id;fechaAlta;DNI;CUIT;Apellido;Nombre;Direccion;CP;Tel1;Tel2;Sexo;mail;Ficha) 

[1] => Array ([0] => 3;2008-10-25;11660466;27116604665;PEREZ;SABRINA;COLON 43 Piso: 4 Depto: B Barrio: CENTRO Codigo Postal: 5000 Localidad: CORDOBA;5000;158882656;4111752;F;[email protected];342) 
) 

Aber ich brauche ein Ergebnis wie folgt:

Array 
(
    [0] => Array 
     (
      [0] => Id 
      [1] => fechaAlta 
      [2] => DNI 
      [3] => CUIT 
    # 

     ) 

    [1] => Array 
     (
      [0] => 3 
      [1] => 2008-10-25 
      [2] => 11660466 
      [3] => 27116604665 
# 
     ) 

Wie sollte die Funktion, um das Ergebnis oben zu bekommen?

+0

Sie haben überprüfte die Parameter für 'fgetcsv' im Handbuch ?! – Rizier123

+0

Wie wollen Sie "Kontrolle über jedes Element in jeder Reihe"? Ist es nur ein Wechsel des Separators? – halfer

+0

Sie verwenden 'fgetcsv' falsch. Wenn Sie fgetcsv jedoch nicht verwenden möchten, können Sie 'fgets' verwenden, um jeweils eine einzelne Zeile zu erhalten. Verwenden Sie dann die Funktion' explode() ', um jede Zeile in ein Array zu zerlegen. – kojow7

Antwort

3

Sie benötigen keine andere Funktion; nur fgetcsv() richtig nutzen - das Standardtrennzeichen ist ein , und Ihre Datei hat ; als Separator, so müssen Sie fgetcsv(), die kleine Tatsache sagen:

$line_of_text[] = fgetcsv($file_handle, 1024, ';'); 

dann wird es für Sie arbeiten

+1

Wir brauchen eine kanonische für: "Ich benutze Funktion X, aber es funktioniert nicht richtig, was mache ich?" und mit der Antwort "RTM über die Funktion, mit der Sie ein Problem/eine Frage haben.". Das würde das Leben viel einfacher machen;) – Rizier123

Verwandte Themen