2014-11-24 2 views
0

헤더 행이 행 1이 아닌 csv 파일이 있습니다.이 상황에서 어떻게 CSV 파일을 변환 할 수 있습니까? 헤더 행 누군가가 행이 [1] 머리글 행되는 상황에서 저를 도와 드릴 수 있습니다하시기 바랍니다PHP를 사용하여 CSV 파일을 변환하는 방법

function csv_to_array($filename='', $delimiter=',') 
{ 
if(!file_exists($filename) || !is_readable($filename)) 
    return FALSE; 

$header = NULL; 
$data = array(); 
if (($handle = fopen($filename, 'r')) !== FALSE) 
{ 
    while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) 
    { 
     if(!$header) 
      $header = $row; 
     else 
      $data[] = array_combine($header, $row); 
    } 
    fclose($handle); 
} 
return $data; 
} 

으로 행 [0]에 어디는 CSV 파일을 변환하는 좋은 버전을 보았다. 헤더는 1 행에있는 경우

답변

1

당신은 다음과 같이 수행 할 수 있습니다

  function csv_to_array($filename='', $delimiter=',') 
      { 
      if(!file_exists($filename) || !is_readable($filename)) 
       return FALSE; 

      $header = NULL; 
      $data = array(); 
      if (($handle = fopen($filename, 'r')) !== FALSE) 
      { 
       $i=0; 
       while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) 
       { 
        if($i==0) 
        { 
         $i++; 
         continue; //SKIP FIRST ROW 
        } 
        if(!$header) 
         $header = $row; 
        else 
         $data[] = array_combine($header, $row); 
       } 
       fclose($handle); 
      } 
      return $data; 
      } 
+0

정말 감사합니다. 감사합니다. 감사합니다. 감사합니다. – cghrmauritius

0

당신은, 당신은 루프 내가에게 $ 관심 부족 = 2

1

을 시작하기 위해 실행할 수 있습니다이

$file = fopen("path/to/csv","r"); 
$list=array(); 

//saving in list 
while ($row=fgetcsv($file)) { 
    $list[]=$row; 
} 

같은 배열로 fgetcsv 및 저장 결과를 사용할 수 있습니다 , 행 0에 무엇이 있습니까? 그것은 비어 있습니까? 또한

$i = 0; 
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) { 
    $i++; 
    if ($i == 1) { 
     continue; // Or do something else? 
    } elseif ($i == 2) { 
     $header = $row; // Get the headers on row 1 
    } else { 
     $data[] = $row; // Get the data on row 2 and above 
    } 
} 

:

while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE) { 
    $data[] = $row; 
} 

var_dump($data[1]); // This is the header 

for ($i = 2, $j = count($data); $i < $j; $i++) { 
    var_dump($data[ $i ]); // Each row of data 
} 
+0

사용 $ 내가 전에, 그렇지 않으면 $ 계속 ++ i가 항상 0이 될 것입니다 어떤 경우

+0

감사합니다. – MrCarrot

관련 문제