【发布时间】:2014-09-24 20:48:49
【问题描述】:
我有一个包含逐行数据的 CSV 文件。场景是我的 2 列始终具有相同的值。
假设,如果在第 1 行中,第 0 列和第 1 列具有相同的值,则只需将其与我要循环的其他值一起存储在数组中。
在下一次迭代中,它会检查第 0 列和第 1 列的值是否已经存在于前一个数组中,因此循环第 1 列并将该列数据循环到新数组,直到从前面的行第 0 列和第 1 列具有不同的值。
这是 CSV 文件数据:
PickTicketNumber OrderNumber LineItemUpc LineItemUnitPrice LineItemQuantity
218837 204127 LR8025BLKMD 58 4
218837 204127 LR8025BLKLG 58 3
218837 204127 LR8475HEASM 54 1
218837 204127 LR8770ROYLG 53 1
218838 204128 LR8475HEAXS 54 1
218838 204128 LR8475HEASM 54 2
218838 204128 LR8475HEAMD 54 2
218838 204128 LR8475HEALG 54 1
218838 204128 LR8917BLKXS 58 1
218838 204128 LR8917BLKSM 58 1
218838 204128 LR8917BLKMD 58 1
218838 204128 LR8917BLKLG 58 1
218838 204128 LR6382BLKXS 48 1
218838 204128 LR6382BLKSM 48 2
218838 204128 LR6382BLKMD 48 2
218838 204128 LR6382BLKLG 48 1
218838 204128 LR8475BLKSM 54 2
218838 204128 LR8475BLKMD 54 2
218838 204128 LR8475BLKLG 54 1
218839 204130 LR8878HEAXL 63 1
这里很清楚,218837 204127 存在 4 次,所以我只想要一次并循环它的 LineItemUpc LineItemUnitPrice LineItemQuantity。
在最终结果中,我希望以这种方式查看结果:
218837 204127
仅一次,如果它再次存在于下一行中,则再次循环其 LineItemUpc LineItemUnitPrice LineItemQuantity。意味着我想要的循环:
LR8025BLKMD 58 4
LR8025BLKLG 58 3
LR8475HEASM 54 1
LR8770ROYLG 53 1
其他元素也一样。
表示一个 PickTicketNumber OrderNumber 并在接下来的具有相同 PickTicketNumber OrderNumber 的行中循环它们的所有值,直到并且除非新的 PickTicketNumber OrderNumber 出现新的 PickTicketNumber OrderNumber。
最后我的最终结果是:
<reference>218837 / 204127</reference>
<line>LR8025BLKMD</line>
<price>58<price>
<qty>3<qty>
<line>LR8025BLKLG</line>
<price>58<price>
<qty>1<qty>
<line>LR8475HEASM</line>
<price>54<price>
<qty>1<qty>
<line>LR8770ROYLG</line>
<price>53<price>
<qty>1<qty>
【问题讨论】:
-
你试过了吗?
-
目前还不清楚最终的结果是什么。它会是一个多维数组吗?你能把数组贴在这里它最终应该是什么样子吗?
-
@vlzvl 是的,我确实先尝试了自己,因此我把我的逻辑放在这里。我正在使用数组,但一点运气都没有。
-
你已经有任何代码了吗?也请在这里发布。
-
我已经发布了我的最终结果。谢谢