我有以下数组:
array(4) {
["Product1"]=>
string(1) "2"
["Product2"]=>
string(1) "0"
["Product3"]=>
string(1) "0"
["Product4"]=>
string(1) "0"
}
array(4) {
["Product1"]=>
string(1) "7"
["Product2"]=>
string(1) "2"
["Product3"]=>
string(1) "0"
["Product4"]=>
string(1) "0"
}
我需要对产品进行分组并总结其数量,以便:
array(4) {
["Product1"]=>
string(1) "9"
["Product2"]=>
string(1) "2"
["Product3"]=>
string(1) "0"
["Product4"]=>
string(1) "0"
}
抱歉我的英语不好,非常感谢你的帮助!
答案 0 :(得分:1)
UPDATE:如果您有许多具有相同键的数组,则必须为每个数组的每个键计算值的总和。
使用此:
$finalArray = array();
foreach($parentArray[0] as $key => $value) {
$property = $key;
$sum = 0;
foreach($parentArray as $array) {
$value = $array[$property];
$sum = $sum + $value;
}
$finalArray[$property] = $sum;
}
输出相同。
试试这个:
如何做你想要的?得到总和:
$finalArray = array();
foreach($array1 as $key => $value) {
$value1 = $array1[$key];
$value2 = $array2[$key];
$finalArray[$key] = $value1 + $value2;
}
如何输出结果?输出:
foreach($finalArray as $key => $value) {
echo $key." sum is ".$value;
}
告诉我某些事情是否不清楚。
注意,+
符号会将两种值类型都更改为integer
,您将获得整数输出。
如果你想要字符串输出,请使用:
echo "".$integerValue;
P.S。:为什么他们是字符串类型?是否有必要?
答案 1 :(得分:0)
应该使用不同键的多个输入数组的示例代码
// 0. let's say all your arrays are in $arrays,
$arrays[] = array(...data for array 1...);
$arrays[] = array(...data for array 2...);
$arrays[] = array(...data for array 3...); // and so on...
// 1. get all keys together from the array's
$ak = array(); // keys
$ar = array(); // result
foreach ($arrays as $array) {
$ak = array_merge($ak, array_keys($array));
}
// 2. sum all the values for all keys into one
foreach ($arrays as $array) {
foreach ($ak as $key) {
$ar[$key] += $array[$key];
}
}
// result is in $ar
答案 2 :(得分:0)
2个阵列的最快方式:
$newarray = array();
foreach($firstarray as $k => $val){
$newarray[$k] = (int)$newarray[$k] + (int) $val;
}
foreach($secondarray as $k => $val){
$newarray[$k] = (int)$newarray[$k] + (int) $val;
}
var_dump($newarray);