1 回答

TA贡献1820条经验 获得超9个赞
我将把它简化为SSCCE,这样它就很容易理解和复制。
我认为你把这里的解决方案过于复杂化了,这可能是导致你这么多奇怪错误的原因。解决方案实际上相当简单。您需要做的就是获取每个csv文件,将其解析为行和列,然后将每行合并到一行中以将其写回另一个csv。
这是最简单的方法:
$file0 = <<<'FILE0'
Manufacturer ID,image,description
SKU231,image1.jpg,A box.
SKUAG1,image22.jpg,Another box.
SKU21D,image7a.png,A third box.
FILE0;
$file1 = <<<'FILE1'
mpn,length,height,width,title
SKU231,22,14,10,Box 1
SKUAG1,12,6,6,Box 2
SKU21D,5,8,5,Box 3
FILE1;
$csv1 = array_map('str_getcsv', explode("\n", $file0));
$csv2 = array_map('str_getcsv', explode("\n", $file1));
$fd = fopen("/tmp/test.csv", 'w');
foreach ($csv1 as $row => $columns) {
$newRow = array_merge($columns, $csv2[$row]);
fputcsv($fd, $newRow);
}
$fd = fopen("/tmp/test.csv", "r");
while (($line = fgets($fd)) !== false) {
echo $line;
}
结果:
"Manufacturer ID",image,description,mpn,length,height,width,title
SKU231,image1.jpg,"A box.",SKU231,22,14,10,"Box 1"
SKUAG1,image22.jpg,"Another box.",SKUAG1,12,6,6,"Box 2"
SKU21D,image7a.png,"A third box.",SKU21D,5,8,5,"Box 3"
|Manufacturer ID | image | description | mpn | length | height | width | title |
|----------------|-------------|--------------|--------|--------|--------|-------|-------|
| SKU231 | image1.jpg | A box. | SKU231 | 22 | 14 | 10 | Box 1 |
| SKUAG1 | image22.jpg | Another box. | SKUAG1 | 12 | 6 | 6 | Box 2 |
| SKU21D | image7a.png | A third box. | SKU21D | 5 | 8 | 5 | Box 3 |
- 1 回答
- 0 关注
- 91 浏览
添加回答
举报