도움이 2 파일에서 CSV - 하나를 수집합니다. 비슷한 셀을 병합합니다. 예가 아래에 나와 있으며 내 코드의 일부입니다. 결과 파일 - 나는PHP를 사용하여 CSV 파일을 결합
name;price
Tom;1000
Anna;2000
Aleks;3000
Maikal;2000
Piter;5000
csv2.csv
csv1.csv =
name;price
Tom;1200
Anna;2300
Andre;2000
Maikal2;2400
all.csv 사전에 도움 덕분에 매우 감사하게 될 것입니다.
name;price;price
Aleks;3000;
Andre;;2000
Anna;2000;2300
Piter;5000;
Maikal;2000;
Maikal2;;2400
Tom;1000;1200
나는 한 줄을 기준으로 단순히 파일을 붙인 스크립트가 있습니다. 그러나 그것은 다른 결과를줍니다.
if(@$_FILES["DATAF_1"]["size"]>0 AND @$_FILES["DATAF_2"]["size"]>0)
{
$data=array();
function read_csv($file)
{
$out=array();
$lines = file($file);
foreach ($lines as $line_num => $line)
{
$out[]=explode(";",$line);
}
return $out;
}
function action_csv(&$array,$input)
{
for ($i=0; $i<count($input); $i++)
{
for ($i2=1; $i2<count($input[$i]); $i2++) {
if(trim($input[$i][0])!=""){$array[trim($input[$i][0])][]=trim($input[$i][$i2]);}
}
}
}
function form_csv($data)
{
$out=array();
foreach ($data as $line_num => $line)
{
$out[]=$line_num.";".implode(";",$line);
}
return implode("\r\n",$out);
}
$data1=read_csv($_FILES["DATAF_1"]["tmp_name"]);
$data2=read_csv($_FILES["DATAF_2"]["tmp_name"]);
action_csv($data,$data1);
action_csv($data,$data2);
@unlink("out.csv");
$fp = fopen ("out.csv", "w+");
fwrite ($fp, form_csv($data));
fclose ($fp);
그것은 더 도움이 될 수도, 당신은 스크립트에서 기대하는 출력 :
편집 : 그래서 지금은 당신이 원하는대로 작동합니다. –
답변 해 주셔서 감사합니다. 샘플 출력은 예제 all.csv에 나와 있습니다. 아니면 다른 것이 필요합니까? – Tom910
시험해보십시오. http://stackoverflow.com/questions/17251862/how-to-merge-csv-files-in-php-line-by-line –