2014-03-25 6 views
0

아래 코드를 사용하여 CSV 파일에서 가져 오기를 기반으로 CSV 파일에 데이터를 추가하고 있습니다. 새로운 CSV 파일에 새 데이터를 쓸 때 모든 것이 정상적으로 보입니다! 그러나 새 열을 새 열에 추가하고 싶습니다. 나는 예를 들어 설명하려고 노력할 것이다.기존 CSV 파일에 새 데이터 추가

원본 csv의 첫 번째 열에는 ID가 들어 있습니다. 이 ID는 원격 웹 사이트에서 데이터를 가져 오는 데 사용됩니다. 이 데이터는 csv_array()라는 배열에 저장됩니다. :

$id = array(); 
if (($handle = fopen($filename, 'r')) !== false) 
{ 
    while (($data = fgetcsv($handle, 1000, ";")) !== false) 
    { 
     if ($data[0] != null) 
     { 
      $id[] = $data[0]; 
     } 
    } 
    fclose($handle); 
} 

$csv_array = array(); 
foreach ($id as $product_id) 
{ 
    array_push($csv_array, $arr = array_merge(array('id' => $product_id), $product_info, $images)); 
} 

다음 단계는이 데이터를 새로운 .csv 파일에 삽입하는 것입니다.

이 모든 기능이 작동하지만 새 데이터를 원본 csv에 3 개의 새로운 열에 추가하고 싶습니다. 나는 $ fp = fopen ($ filename, 'a')을 사용하여 tryed했다. 그러나 이것은 세 개의 새로운 열 대신 csv 끝에 새 데이터를 추가합니다. 누가 내게 힌트를 줄 수 있습니까 :)

답변

0

fputscsv를 호출하기 전에 $csv_array에 새 열을 추가 할 수 있습니다. 코드에 추가 할 수있는 가장 좋은 장소는 다음과 같습니다.

$csv_array = array(); 
foreach ($id as $product_id) 
{ 
    array_push(
     $csv_array, 
     $arr = array_merge(array('id' => $product_id), $product_info, $images, $your_new_columns_for_this_row) 
    ); 
} 
관련 문제