2012-07-12 43 views
0

基本上,我创建了一个脚本来为订单的确认页面上的Commission Junction订单加载跟踪像素。 1次订单非常简单,但我们的购物车允许同时放置多个订单,并且只提供1个确认页面。这意味着我必须在加载像素之前将所有订单号和项目合并为一个字符串。问题在于我必须合并类似的数据,因为项目SKU不能重复。合并来自字符串或数组的类似数据

我必须发送的四个值是订单号,SKU(s),金额(s)和数量。

一个简单的单个订单确认页例如:

订单#:100 SKU:RR-555/AMT:5.00/QTY:1 SKU:SS-444/AMT:10.00/QTY:2

脚本将输出这个为:

&ITEM1=RR-555&AMT1=5.00&QTY1=1&ITEM2=SS-444&AMT2=10.00&QTY2=2&OID=100 

一个多订单确认页面例如:

订单号:101 SKU:RR-555/AMT:5.00/QTY:1 SKU:SS-444/AMT:10.00/QTY:2

订单#:102 SKU:TT-333/AMT:5.00/QTY:1 SKU:RR-555/AMT:5.00 /数量:1

脚本的输出将目前读作:

&ITEM1=RR-555&AMT1=5.00&QTY1=1&ITEM2=SS-444&AMT2=10.00&QTY2=2&&ITEM3=TT-3333&AMT3=5.00&QTY3=1&ITEM4=RR-555&AMT4=5.00&QTY4=1&OID=101102 

在有多个订单OID的只会得到级联到两端的情况下彼此。问题是SKU'RR-555'在该字符串中出现两次,只能出现一次。因此,我正在寻找结合SKU号码并将它们的数量加在一起的最佳方式。所以它会显示:

&ITEM1=RR-555&AMT1=5.00&QTY1=3&ITEM2=SS-444&AMT2=10.00&QTY2=2& 
&ITEM3=TT-3333&AMT3=5.00&QTY3=1&OID=101102 

我真的很困惑如何处理这个问题。将所有订单中的所有项目数据放入一个数组中,尝试在该级别进行组合,然后创建字符串最好吗?或者我应该创建该字符串并尝试在那里结合?任何帮助表示赞赏!

回答

0

首先将它们组合成一个像数组一样的PHP数据结构。在将它们转换为字符串之后尝试将它们合并是没有意义的,因为您只需重新解析已解析的数据即可!

+0

那就是我认为最好的方法。林只是不知道如何处理它,一旦它在阵列中。 – jkphl 2012-07-12 16:00:40

+0

对不起,最后的评论,错误的线程..,也许你可以更新你的问题来显示数组的结构? – quickshiftin 2012-07-12 16:12:30

+0

即使在那一步,我也不确定我应该如何构建它们。我假设我会使用array_push将项目放入一个数组,因为它循环但我卡在那里。 – jkphl 2012-07-12 16:14:23