2013-03-19 5 views
0

"id"와 "name"의 두 열이있는 CSV가 있고 동일한 ID를 공유하는 행을 병합하고 콤마.csv에서 동일한 ID로 행을 결합하는 방법

id  name 
39695 NFL: Cowboys @ Giants 
39699 NFL: Colts @ Bears, NFL: Steelers @ Broncos, NFL: Eagles @ Browns, NFL: Panthers @ Buccaneers 

내가 필요로하는 모든에

id  name 
39695 NFL: Cowboys @ Giants 
39699 NFL: Colts @ Bears 
39699 NFL: Steelers @ Broncos 
39699 NFL: Eagles @ Browns 
39699 NFL: Panthers @ Buccaneers 

그냥 밖으로 에코하거나 새 .csv 파일입니다.

도움 주셔서 감사합니다.

** 편집 PHP에서 CSV 기능을 위해 특별히 설계된 사용하는 것이 안전합니다

<"?php 

$lines = file('sport3.csv'); 

foreach($lines as $line) 
{ 
list($id, $name) = explode(',', $line); 
$merged[$id][] = $name; 
} 

foreach($merged as $id => $vals) 
{ 
echo '"' . $id . '", "' . implode(',', $vals) . '\"\n'; 
} 
?> 
+0

당신이 지금까지 가지고있는 것을 보여주세요. –

+0

$ lines = file ('sport3.csv'); foreach ($ lines as $ lines) { } 코드 목록 ($ id, $ name) = 폭발 (',', $ 줄); $ merged [$ id] [] = $ name; } foreach ($ id => $ vals) { echo ' ". $ id." ",". "implode (', ', $ vals).'\"\ n '; } – user2184711

+0

질문을 수정하고 코드를 질문에 넣으십시오. –

답변

1

: 도움이

// parse thru data 
$mergedData = array(); 
$handle = fopen('sport3.csv', 'r'); 
if (!$handle) throw new Exception("Can't open original CSV file"); 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    list($id, $name) = $data; 
    if (empty($mergedData[$id])) $mergedData[$id] = array(); 
    $mergedData[$id][] = $name; 
} 
fclose($handle); 

// save merged data 
if (count($mergedData) > 0) { 
    $handle = fopen('sport3-merged.csv', 'w'); 
    if (!$handle) throw new Exception("Can't open CSV file for merged data"); 
    foreach($mergedData as $id => $vals) { 
     array_unshift($vals, $id); 
     if (!fputcsv($handle, $vals)) throw new Exception("Can't write data to merged CSV file"); 
    } 
    fclose($handle); 
} 

희망.

+0

이 문제를 구현하는 데 문제가있는 것 같습니다. 페이지를 살펴 보시겠습니까? https://people.rit.edu/cak5074/536/class/typecal.html – user2184711

+0

PHP 코드가 실행되지 않습니다. .html 대신 .php 확장자를 사용해보십시오. 그리고 그 작동하지 않는 경우, 당신은 PHP 코드에 사용하거나 첫 번째 장소에서 실행할 수 있도록 확장 기능을 말해 sys 관리자에게 얘기해야합니다. –

+0

.php 파일로 해결했습니다! 고마워요 ~! – user2184711

관련 문제