2013-01-24 59 views
0

foreach语句一起添加变量我使用这个代码,以将产品添加到谷歌Analytics跟踪。在基于ID

<?php foreach($orderProducts as $product) { ?> 
    _gaq.push(['_addItem', 
     "<?php echo $product['order_id']; ?>", 
     "<?php echo $product['product_id']; ?>", 
     <?php echo json_encode($product['name']); ?>, 
     "<?php echo $product['model']; ?>", 
     "<?php echo $product['price']; ?>", 
     "<?php echo $product['quantity']; ?>" 
    ]); 

这工作得很好基础的产品,但有些产品有选择等多个版本添加到$orderProducts相同型号ID。 Google Analytics只会提取第一个,因此其他实例的数量不会被跟踪。

我需要做的是添加所有量一起在阵列中使用相同的模型ID每个条目,然后删除所有但随着新的“总”量这一模式ID的一个实例。

任何帮助,非常感谢。

回答

1

通过你的阵列就循环,并创建包含每个唯一model只有一个条目的新阵列,以正确的quantity(未经测试):

$newArray = array(); 
foreach ($orderProducts as $product) { 
    if (isset($newArray[$product['model']])) { 
    $newArray[$product['model']]['quantity'] += $product['quantity']; 
    } else { 
    $newArray[$product['model']] = $product; 
    } 
} 

然后你可以遍历所有的$newArray以同样的方式正如你最初为$orderProducts所做的那样:

<?php foreach($newArray as $product) { ?> 
    _gaq.push(['_addItem', 
     "<?php echo $product['order_id']; ?>", 
     "<?php echo $product['product_id']; ?>", 
     <?php echo json_encode($product['name']); ?>, 
     "<?php echo $product['model']; ?>", 
     "<?php echo $product['price']; ?>", 
     "<?php echo $product['quantity']; ?>" 
    ]); 
+0

感谢您的回答,不幸的是我无法得到这个工作。没有ID或数量或输出。 – 0li4tw

+0

这不会输出任何东西,它会创建一个新的阵列,将只包含每个独特模式的一个条目,以正确的数量。我已经编辑了我的答案 - 试试 – billyonecan

+0

作品,非常感谢! – 0li4tw