组合字符串或数组中的类似数据


Combining similar data from string or array

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

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

一个简单的单一订单确认页面示例:

订单号:100SKU:RR-555/AMT:5.00/数量:1库存单位:SS-444/AMT:10.00/数量:2

脚本会将其输出为:

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

多订单确认页面示例:

订单号:101SKU:RR-555/AMT:5.00/数量:1库存单位:SS-444/AMT:10.00/数量:2

订单号:102SKU:TT--333/AMT:5.00/数量:1SKU: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

我真的很困惑该怎么办。最好将所有订单中的所有项目数据放入一个数组中,尝试在该级别进行组合,然后创建字符串吗?或者我应该创建那个字符串并尝试在那里组合?感谢您的帮助!

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