如何使用 php 获取多维数组特定索引中的值总和?
How to get sum of values in specific index of multidimensional array using php?
我的代码中有这个数组
Array
(
[1] => Array
(
[1] => 4
[5] => 7
)
[2] => Array
(
[1] => 2
[5] => 5
)
[3] => Array
(
[1] => 2
[5] => 5
)
[4] => Array
(
[1] => 6
[5] => 9
)
[5] => Array
(
[1] => 6
[5] => 8
)
)
1
如何获得具有相同索引的总和元素?例如 - 索引为 5 或索引 1 的所有元素的总和。如果没有硬编码可能的话。
您可以使用此代码
这是测试的演示代码
$items = array(
array(1 => 1, 2 => 'White Shirt', 3 => 2),
array(1 => 2, 2 => 'Blue Shirt', 3 => 3)
);
echo "<pre>";
print_r($items);
echo array_sum(array_column($items, 3)); // output 5
it will work for php 5.5+
// PHP 5.5+
echo array_sum(array_column($array, 'yourindexname')); //
// PHP 4+
function sumArray($item) {
return $item['yourindex'];
}
echo array_sum(array_map('sumArray', $array));
/ PHP 5.3+
echo array_sum(array_map(
function($item) {
return $item['yourindex'];
}, $items)
);
$sumvalue = array();
foreach ($array as $k=>$sub_array) {
foreach ($sub_array as $id=>$value) {
$sumvalue [$id]+=$value;
}
}
print_r($sumvalue );
您可以执行以下操作:
function getSumOfId($array, $id) {
$sumOfId = 0;
foreach($array as $arr) {
$sumOfId += $arr[$id];
}
return $sumOfId;
}
这样您将遍历所有数组,并获得特定 ID 的完整总和。
你可以这样使用getSumOfId($yourArray, 5)
您可以使用 array_reduce()
对目标值求和。
$sum = array_reduce($arr, function($carry, $item){
$carry += $item[5];
return $carry;
});
echo $sum;
检查 demo
中的代码结果
我的代码中有这个数组
Array
(
[1] => Array
(
[1] => 4
[5] => 7
)
[2] => Array
(
[1] => 2
[5] => 5
)
[3] => Array
(
[1] => 2
[5] => 5
)
[4] => Array
(
[1] => 6
[5] => 9
)
[5] => Array
(
[1] => 6
[5] => 8
)
)
1
如何获得具有相同索引的总和元素?例如 - 索引为 5 或索引 1 的所有元素的总和。如果没有硬编码可能的话。
您可以使用此代码
这是测试的演示代码
$items = array(
array(1 => 1, 2 => 'White Shirt', 3 => 2),
array(1 => 2, 2 => 'Blue Shirt', 3 => 3)
);
echo "<pre>";
print_r($items);
echo array_sum(array_column($items, 3)); // output 5
it will work for php 5.5+
// PHP 5.5+
echo array_sum(array_column($array, 'yourindexname')); //
// PHP 4+
function sumArray($item) {
return $item['yourindex'];
}
echo array_sum(array_map('sumArray', $array));
/ PHP 5.3+
echo array_sum(array_map(
function($item) {
return $item['yourindex'];
}, $items)
);
$sumvalue = array();
foreach ($array as $k=>$sub_array) {
foreach ($sub_array as $id=>$value) {
$sumvalue [$id]+=$value;
}
}
print_r($sumvalue );
您可以执行以下操作:
function getSumOfId($array, $id) {
$sumOfId = 0;
foreach($array as $arr) {
$sumOfId += $arr[$id];
}
return $sumOfId;
}
这样您将遍历所有数组,并获得特定 ID 的完整总和。
你可以这样使用getSumOfId($yourArray, 5)
您可以使用 array_reduce()
对目标值求和。
$sum = array_reduce($arr, function($carry, $item){
$carry += $item[5];
return $carry;
});
echo $sum;
检查 demo
中的代码结果