2013-01-24 56 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