2015-10-14 191 views
0

对不起,如果这是一个重复的,但我尽我所能找到一个类似的问题,但我并不是100%确定要搜索什么。合并多维数组PHP

下面的数组来自我创建的电子商务网站。 每件商品都有独特商品代码的颜色变体,但是商品共享一个sku。我想通过sku代码合并数组来计算每个项目的数量。我已经看到了用相同的键合并数组的方法,但是找不到合并这些数组的方法。

感谢

array(4) { 
    ["ITEM-CHAIR-v-V0002"]=> 
    array(4) { 
    ["itemcode"]=> string(16) "ITEM-CHAIR-v-V0002" 
    ["sku"]=>string(8) "ITEM-CHAIR" 
    ["quantity"]=>string(1) "4" 
    ["price"]=>string(5) "49.99" 
    } 
["ITEM-CHAIR-v-V0003"]=> 
array(4) { 
    ["itemcode"]=>string(16) "ITEM-CHAIR-v-V0003" 
    ["sku"]=>string(8) "ITEM-CHAIR" 
    ["quantity"]=>string(1) "7" 
    ["price"]=>string(5) "49.99" 
    } 
["ITEM-KNIFE-v-V0001"]=> 
array(4) { 
    ["itemcode"]=>string(22) "ITEM-KNIFE-v-V0001" 
    ["sku"]=>string(14) "ITEM-KNIFE" 
    ["quantity"]=>string(1) "1" 
    ["price"]=>string(5) "45.00" 
    } 
["ITEM-CHAIR-v-V0001"]=> 
array(4) { 
    ["itemcode"]=>string(16) "ITEM-CHAIR-v-V0001" 
    ["sku"]=>string(8) "ITEM-CHAIR" 
    ["quantity"]=>string(1) "4" 
    ["price"]=>string(5) "49.99" 
    } 
} 
+0

感谢您的快速回复。我已经尝试遍历数组并添加数量(如果sku匹配的话),但我更愿意使用逻辑而不是任何东西,因为我试过的只是将所有物品的数量加起来,最终结果是我会就像基本上有一个数组,其中包含SKU作为键和数量作为值,例如从我上面的数组中,键将是ITEM-CHAIR,值将是15,因为篮子中有15把椅子,尽管它们是不同变体的混合物。 – user2946343

+0

如果您提供的代码已经存在,您可以更快地获得解决方案。您也可以提供预期的数组。只是扩大你对这些信息的问题。 – marian0

回答

2

遍历阵列,并且与当前的计数器只增加数组,如果你发现钥匙存在或创建新的索引:

$results = array(); 
foreach ($inputArray as $item) { 
    if (isset($results[$item['sku']])) { 
     ++$results[$item['sku']]; 
    } else { 
     $results[$item['sku']] = 1; 
    } 
} 
+0

谢谢,虽然这并没有给我确切的事情,我以后,这是每个sku组的总数量,它指出我在正确的方向,所以我会将它标记为正确的答案。对不起,如果我的问题含糊不清。 – user2946343

0

据我了解。

$resultArray = []; 
    foreach ($entryArray as $value){ 
     $resultArray[$value["sku"]][$value["itemcode"]]=$value; 
    } 

现在你得到的是:

array(2) { 
    ["ITEM-CHAIR"]=>{ 
     array(3){ 
      ["ITEM-CHAIR-v-V0003"] => array(4){...} 
      ["ITEM-CHAIR-v-V0002"] => array(4){...} 
      ["ITEM-CHAIR-v-V0001"] => array(4){...} 
     } 
    } 
    ["ITEM-KNIFE"]=>{ 
     array(1){ 
       ["ITEM-KNIFE-v-V0001"] => array(4){...} 
     }  
    } 
} 

也许你想这一点。 所以你可以使用count($ resultArray [“ITEM-X”])来计算sku。而且您还可以更好地分类您的产品。