2016-08-22 2 views
-7

데이터를 텍스트 파일에 2D 배열로 읽고 저장해야하지만 어떻게해야하는지 잘 모르겠습니다 ... 제발 도와주세요!PHP에서 2 차원 배열로 텍스트 파일 데이터를 저장하는 방법

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

this gives me a standard array like this:

I를 : 여기에 지금까지 시도했습니다 무엇

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 

.... 그래서

에 : 같은 파일의 데이터는 첫 번째 수준에서 위치 이름을 사용하여 인덱스를 유지 한 다음 첫 번째 수준의 배열에서 세 값을 가진 각 인덱스를 별도의 인덱스로 변환해야합니다. arrays([1] within [0], [4] within [3], etc)

+0

당신이 한 일을 게시 할 수 있습니까? – theinarasu

+0

첫 번째 줄은 인덱스가되고 두 ​​번째 줄은 파일의 값이됩니다. –

+2

스택 오버플로에 오신 것을 환영합니다. 도움말 센터를 방문하여 [둘러보기] (http://stackoverflow.com/tour)를 방문하여 무엇을 묻고 어떻게 볼 수 있는지 확인하십시오. – Noman

답변

0

당신은 file을 사용하여 분석 할 수있다 : 샘플 데이터에서

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에"맥 OS를 들어, "\ n"유닉스/리눅스에 대한 ")와 $는 path_to_file 따라
  2. 이 단순한 파서 필터없이. 따라서 원시 데이터에 일관된 데이터 구조가 있는지 확인하십시오.

희망이 도움이됩니다.

관련 문제