PHP数组 - 相同键的总和值

时间:2015-03-24 22:48:59

标签: php arrays count key

我有php数组......

Array
(    
   [pages] => Array
       (
            [/stream/apple] => 2
            [/stream/melon] => 1
            [/stream/orange] => 3
            [/stream/kiwi] => 1
       )
)
Array
(    
   [pages] => Array
       (
            [/stream/apple] => 1
       )
)
Array
(    
   [pages] => Array
       (
            [/stream/kiwi] => 1
            [/stream/melon] => 4
       )
)
...

......有更多阵列

我怎样才能归还这样的东西......

/stream/apple = 3

/stream/melon = 5

/stream/orange = 3

/stream/kiwi = 2

我找不到任何样品怎么做...... 也许有人可以帮助我!

1 个答案:

答案 0 :(得分:0)

这个问题不够具体,无法提出结论性建议,如果你想通过代码而不是SQL查询,你可以在第一个数组上使用a,并从其他数组中添加值,这是一个例子。

foreach ($array1 as $key => $val){
  if (array_key_exists($key,$array2))  $array1[$key] += $array2[$key];
  if (array_key_exists($key,$array3))  $array1[$key] += $array3[$key];
}

foreach 循环允许您通过数组而无需担心它的长度。

然后,您可以使用 $ key 在循环播放时存储数组键的值。

$ val 将数组的值存储在该键中。

然后使用一个非常有用的函数 array_key_exists(key,array) 来检查你所在的密钥是否存在于其他数组中,如果它确实如此,你将它的值加到第一个数组中。

希望它有所帮助!

<强> 修改

要遍历无限数量的数组,可以使用相同的过程。 这是怎么做的。

  // You have all the arrays stored in $array_Nest
  // And you will store the totals in $array_Total

  foreach($array_Nest as $key_Nest => $val_Nest){    
    foreach ($array_Total as $key_Total => $val_Total){    
      if (array_key_exists($key_Total,$array_Nest[$key_Nest])){    
        $array_Total[$key_Total] += $array2[$key_Nest][$key_Total];    
      }    
    }
  }

所以基本上每个$ array_Nest [$ key_Nest]都是一个数组,从那时起你只需要做与以前相同的过程。