2016-12-02 5 views
0

특정 열에 특정 단어가 포함 된 행만 표시하려고합니다. 기본적으로 표시 열에 "예"가있는 행만 표시하려고합니다. PHP를 사용하여 csv 파일의 특정 열에있는 단어를 필터링하는 방법

First_Name, Last_Name, Display 
Kevin,  Smith,  yes 
Jack,  White,  yes 
Joe,  Schmo,  no 

나는 다른 답변에서와 php.net에서 fgetcsv & str_getcsv으로 다양한 일을 시도했습니다하지만 아무것도 지금까지 작동하지 않습니다.

이 내 현재 코드이지만 아무것도하지 않습니다

$csv = fopen('file.csv', 'r'); 

$array = fgetcsv($csv); 

foreach ($array as $result) { 
    if ($array[2] == "yes") { 
     print ($result); 
    } 
} 
+0

현재 사용중인 코드는 어디에 있습니까? 질문을 편집하고 추가하십시오. – Chris

+1

대답은 당신의 질문입니다. 필터링하려고합니다. fgetcsv를 수행하면 배열이 생깁니다. 해당 배열에서 if ($ data [2]! = 'yes')를 계속 확인하십시오. . 배열 행을 건너 뜁니다. – vishwakarma09

+0

@chris 작동하는 것은 없지만 최근 시도를 추가했습니다. –

답변

0

하자가 the documentation for fgetcsv()를 보라 :

파일 포인터에서 라인을 가져오고 CSV 필드에 대한 분석

fgetcsv은 전체 파일이 아닌 인 한 줄의 을 읽습니다. while 루프 (예 :)에 파일을 넣으면 파일의 끝에 도달 할 때까지 계속 읽는 줄을 유지할 수 있습니다.

<?php 

$csv = fopen('file.csv', 'r'); 

// Keep looping as long as we get a new $row 
while ($row = fgetcsv($csv)) { 
    if ($row[2] == "yes") { 

     // We can't just echo $row because it's an array 
     // 
     // Instead, let's join the fields with a comma 
     echo implode(',', $row); 
     echo "\n"; 
    } 
} 

// Don't forget to close the file! 
fclose($csv); 
+0

오, 알겠습니다. 고맙습니다! –