Skip to main content
 首页 » 编程设计

php之将多维数组变成单个数组

2025年05月04日23sky-heaven

我试图通过迭代购物车创建的数组来创建多维数组:

Array ( 
    [array] => Array ( 
        [0] => Array ( 
            [product_id] => 7 
            [prod_count] => 1 
            [price] => 19.99 
        ) 
        [1] => Array ( 
            [product_id] => 6 
            [prod_count] => 3 
            [price] => 19.99 
        ) 
        [2] => Array ( 
            [product_id] => 5 
            [prod_count] => 2 
            [price] => 19.99 
        ) 
        [3] => Array ( 
            [product_id] => 4 
            [prod_count] => 4 
            [price] => 14.99 
        ) 
        [4] => Array ( 
            [product_id] => 3 
            [prod_count] => 5 
            [price] => 19.99 
        ) 
    ) 
) 


变成这样的东西:

$items = array( 
array('product_id'=> $val,  'price'=>$price, 'quantity'=>$prod_count), 
array('product_id'=>$val, 'price'=>$price, 'quantity'=>$prod_count), 
array('product_id'=>$val, 'price'=>$price, 'quantity'=>$prod_count) 
); 


这样我就可以将其输入到Google Analytics(分析)电子商务跟踪代码,并为数组中的每个产品回显以下代码。

_gaq.push(['_addItem', 
   '<?php $order_id; ?>',          // trans ID **I have this part figured out** 
   '<?php $product_id; ?>',        // SKU/code - required 
   '',                             // product name  
   '',                             // category or variation 
   '<?php $price; ?>',             // unit price - required 
   '<?php $prod_count; ?>'         // quantity - required 
]); 


香港专业教育学院尝试了从SO的一堆解决方案,但似乎没有一个适合我的购物车阵列,老实说,我很困惑。 SO的好人请指出正确的方向。

编辑*这是我的代码,首先创建多维数组。

$products = array(); 
 
for($i=0; $i<sizeof($productsIds); $i++){        
    $product = explode(":", $productsIds[$i]); 
    $products[$i]['info'] = $this->Products->getProductById($product[0]); 
    $products[$i]['count'] = $product[1]; 
    $products[$i]['price_count'] = $product[1]*$products[$i]['info']['product_price']; 
 
    $orderarray[$i] = array( 
        'product_id' => $products[$i]['info']['product_id'],  
        'prod_count' => $products[$i]['count'],  
        'price' => $products[$i]['info']['product_price']) ; 


也许我可以更改它,以创建更适合我期望结果的数组。只是不确定如何。

请您参考如下方法:

您想使用原始数组并将其传递给gaq吗?:

// You could remove the need for [0] if you changed your original code 
<?php foreach($yourOriginalArray[0] as $item) { ?> 
  _gaq.push(['_addItem', 
     '<?php $order_id; ?>',          // trans ID **I have this part figured out** 
     '<?php echo $item['product_id']; ?>',        // SKU/code - required 
     '',                             // product name  
     '',                             // category or variation 
     '<?php echo $item['price']; ?>',             // unit price - required 
     '<?php echo $item['quantity']; ?>'         // quantity - required 
  ]); 
<?php } ?> 


其他数据,产品名称和类别,必须像对product_id,价格和数量一样,填充到数组中。