2014-11-26 2 views
1

나는 지방과 도시의 파일을 순서대로 가지고있다. 그러나 나는 그들을 구분하고 나중에 비교할 방법이 있어야한다. 그들을 관리하기 쉬운 방식으로 분리시키는 데 어려움을 겪고 있습니다.PHP가 텍스트 파일을 가져 와서 지방과 도시로 배열로 나누는 것

형식은 다음과 같습니다

province~city 
province~city 

내가

$dataFromFile = file('provine_city.txt'); 
$dataFromFile = array_map('trim', $dataFromFile); 
$result = array(); 
foreach ($dataFromFile as $line) { 
    list($province, $city) = explode('~', $line); 
    $arrayPfCities = explode 
} 
+0

그리고을 받고 어떤 오류 또는 원치 않는 행동이나 출력? –

+4

구분 기호가 '~'인 [fgetcsv()] (http://php.net/manual/en/function.fgetcsv.php)를 사용하십시오. –

+2

모든 것이 정상적으로 작동합니다. '$ arrayPfCities = explode' 당신이 방금 "아 ... fukkit"에 갔다가 여기에 게시 된 것처럼 ... –

답변

2

두 변경하려합니다 그래서 지금까지 내가 확실하지 않다 : 코멘트에서 언급 한 바와 같이

  1. 을 , 파일을 구문 분석하려면 fgetcsv()을 사용하십시오. 데이터
  2. 지방을 키로 사용하여 모든 것을 배열에 넣습니다. 그렇게하면 쉽게 검색 할 수 있도록 각 도시가 모두 지방으로 그룹화됩니다.

몇 가지 상수를 정의하여 배열 키를 사람이 읽을 수있게 만듭니다. 당신은 그렇게 할 필요가 없습니다.

샘플 코드 : 당신이

define('PROVINCE', 0); 
define('CITY', 1); 
$results = array(); 
if (($handle = fopen("provine_city.txt", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, "~")) !== FALSE) { 
     $results[$data[PROVINCE]][] = $data[CITY]; 
    } 
    fclose($handle); 
} 
+0

1 개 이상있을 때마다 $ results [$ data [PROVINCE]]의 값을 덮어 쓰는 것처럼 보일 것입니다 주어진 지방에 대한 도시. 아마도 $ results [$ data [PROVINCE]] [] = $ data [CITY]'일까요? –

+0

@BrianDriscoll Ahh. 내 잘못 입력. 좋은 캐치. –

+0

나는 동료 뉴저지 인에게 내가 할 수있는 일을한다. –

관련 문제