2016-08-22 6 views
-7

データをテキストファイルに読み込んで2D配列として保存する必要がありますが、どうすればよいのか分かりません...助けてください!ファイル内 データは、次のような次のとおりです。PHPで2次元配列としてテキストファイルのデータを格納する方法

Iver Heath 
32 110.0 57.0 

High Wycombe 
35 235.0 121.0 

Datchet 
12 78.0 38.0 

Englefield Green 
12 278.0 157.0 

Uxbridge 
12 123.0 57.0 

....ので

にここで私はこれまで試したものです:私は

$file = array_filter(array_map("trim", file("branches.txt")), "strlen"); 
     print_r($file) . '</br>'; 

this gives me a standard array like this:

を最初のレベルの位置名でインデックスを保持してから、3つの値を持つ各インデックスを、最初のレベルの配列内の別々のインデックスに変換する必要がありますあなたはfileを使用してそれを解析でき

+0

あなたが行ったことを投稿できますか? – theinarasu

+0

最初の行はインデックスになり、2番目の行はファイルの値になりますか? –

+2

Stack Oveflowへようこそ。ヘルプセンターにアクセスし、[ツアー](http://stackoverflow.com/tour)にアクセスして、何をどうやって調べるかを確認してください。 – Noman

答えて

0

次のように

foreach(file($filename) as $lineNumber => $lineContent){ 
    //do something depending of $lineNumber 
} 
0

サンプルデータから、データ構造は次のようになります -

Location[line break]Number of property[space]Income[space]Expenditure[line break][line break]

パーサ: -

// config 
$line_break = "\r\n"; 
$path_to_file = "path/to/file"; 

// read file content, 
$data = file_get_contents("$path_to_file"); 

// split data to array of records 
$data = explode("{$line_break}{$line_break}", $data); 

// split record to fields, 
for ($i = 0; $i < count($data); $i++) { 
    $data[$i] = explode("{$line_break}", trim($data[$i]), 2); 
    list($data[$i][1], $data[$i][2], $data[$i][3]) = explode(' ', trim($data[$i][1]), 3); 
} 

注: -

  1. 変更する$ LINE_BREAK(Windowsの場合 "\ r \ n" が、 "\ rを" Mac OS用、 "\ n" はUNIX/Linux用」)と$はpath_to_fileに応じ
  2. これは単純なパーサーですフィルタなし。したがって、生の データに一貫したデータ構造があることを確認してください。

これが役に立ちます。

関連する問題