2016-04-02 5 views
-1

を使用していないCSVファイルから配列を作成する方法を私はcsvFile.csvPHPを使用したが、fgetcsv

という名前のファイルを持っている

最初の行は次のとおりです。

同上; fechaAlta; DNI; CUIT; Apellido。ノンブル; Direccion; CP; TEL1、TEL2、SEXO、メール、Ficha

2行目です:

3; 2008-10-25; 33360466; 27333604665; PERE Z; SABRINA;リバダビア4543ピソ:3 Depto:バリオ:PARQUEリセウCodigo郵便:5000 Localidad:CORDOBA; 5000; 192772656; 47881752; F; [email protected]; 342

Iは、PHP関数を必要とします私は各行の各要素を制御することができます。

は今、私は、関数を使用します。

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); 
} 

その後、私は次のような結果を得る:

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) 
) 

をしかし、次のように、私は結果が必要になります。

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

     ) 

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

をする必要がありますどのように上記の結果を得る関数?

+0

があなたを持っているため

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

それは動作しますマニュアルの 'fgetcsv'のパラメータをチェックしましたか? – Rizier123

+0

どのように "各行の各要素の制御"をしたいですか?セパレータの変更ですか? – halfer

+0

あなたは 'fgetcsv'を間違って使っています。しかし、実際にfgetcsvを使いたくない場合は、 'fgets'を使って一度に1行を取得し、' explode() '関数を使って各行を配列に分解します。 – kojow7

答えて

3

別の機能は必要ありません。ちょうど適切fgetcsv()を使用する - デフォルトのセパレータは,であり、あなたが(fgetcsvを伝える必要がありますので、あなたのファイルは、セパレータとして;を持っている)少し事実こと:あなた

+1

正規表現が必要です。「関数Xを使用しますが、正しく機能しません」 「問題/質問がある機能についてのRTM」と答えます。それは人生をはるかに簡単にするでしょう;) – Rizier123

関連する問題