在PHP中将一个列单元格检查到另一个整列

时间:2016-06-17 06:11:07

标签: php csv

我有一个包含两列的csv文件 带有部件号的第一列和第二列是图像名称(每个产品的多个图像和基于部件号的图像名称)

我想每次检查每个零件编号和整个第二列图像名称,因为这没有正确排序,并将该相关零件编号的图像名称与该零件编号一起存储在另一个csv中。

当前CSV

PartNumber  Image Name
WP35001153  35001153R.jpg
WPW10135901 35001153R_Back.jpg
WPW10184873 W10135901R.jpg
WPW10200900 W10135901R_BACK.jpg
WPW10215493 W10137702R.jpg
WPW10249237 W10137702R_Back.jpg
WPW10258402 W10141364R.jpg
WPW10477076 W10477076R.jpg
WP8194064   W10477076R_Back.jpg
            W10479760R.jpg

如上所述csv第一部分WP35001153右侧有两个图片35001153R.jpg35001153R_Back.jpg

此外,部件号列和图像列不是特定的或正确分配的。

所以我想搜索带有图像名称entrie列的零件编号,如果匹配则存储在Image1列中,并且应该存储在下一列Image2中,如下所示。

PartNumber  Image1          Image2
WP35001153  35001153R.jpg   35001153R_Back.jpg
WPW10135901 W10135901R.jpg  W10135901R_BACK.jpg
WPW10200900 W10200900.jpg

请帮助解决问题

谢谢

1 个答案:

答案 0 :(得分:0)

似乎你需要使用你的第一列(csv)构建一个新数组,将其作为一个键进行清理,然后添加所有相关内容。

例子(不是确切的代码)

$mynewarray = [];
foreach ($mycsv as $line) {
  $id = $line['PartNumber'];
  if ($id[2] == 'W') {
    it's a key, clean to obtain : 35001153
    mynewarray[$id] = ['pics'=>[ ... ]];
  } else {
    it's a pic, add the image name
    clean the id image name to obtain the key 35001153
    mynewarray[$id]['pics'][] = the pics;
  }
}

如果我理解你的需要,这个想法可以在一个循环中解决你的问题,几乎没有id分析。

:)享受