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

时间:2012-07-12 13:52:57

标签: php arrays loops

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

我必须发送的四个值是Order#,SKU(s),Amount(s)和Quantity。

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

订单号: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 / QTY: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

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

1 个答案:

答案 0 :(得分:0)

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