Php 如何对多维数组的每个键的值求和
给定如下所示的数组:Php 如何对多维数组的每个键的值求和,php,arrays,Php,Arrays,给定如下所示的数组: $items = array( 'red' => array( '1' => array(2), '2' => array(6, 1) ), 'green' => array( '2' => array(1, 9), '1' => array(1, 2) ) ); 我试图找到数组中的值之和。我想要这样的输出: array ( [1]
$items = array(
'red' => array(
'1' => array(2),
'2' => array(6, 1)
),
'green' => array(
'2' => array(1, 9),
'1' => array(1, 2)
)
);
我试图找到数组中的值之和。我想要这样的输出:
array (
[1] => 5,
[2] => 17
)
$sumArray = array();
foreach ($items as $k => $subArray) {
foreach ($subArray as $id => $value) {
$sumArray[$id] += $value;
}
}
print_r($sumArray);
我试着这样做:
array (
[1] => 5,
[2] => 17
)
$sumArray = array();
foreach ($items as $k => $subArray) {
foreach ($subArray as $id => $value) {
$sumArray[$id] += $value;
}
}
print_r($sumArray);
但我有这样的错误:
array (
[1] => 5,
[2] => 17
)
$sumArray = array();
foreach ($items as $k => $subArray) {
foreach ($subArray as $id => $value) {
$sumArray[$id] += $value;
}
}
print_r($sumArray);
注意:未定义的偏移量:NN行/path/to/file.php中的1
致命错误:未捕获错误:不支持/path/to/file.php:NN中的操作数类型
您可以使用
foreach
并使用。
您可以通过将键存储在$sumArray
中来添加数组的总和
首先使用检查密钥是否已存在。如果不存在,则第一次添加总和。如果它确实存在,则将其添加到现有值中
$sumArray = [];
foreach ($items as $date) {
foreach ($date as $key => $amounts) {
if (!array_key_exists($key, $sumArray)) {
$sumArray[$key] = array_sum($amounts);
continue;
}
$sumArray[$key] += array_sum($amounts);
}
}
print_r($sumArray);
这将给你:
Array
(
[1] => 5
[2] => 17
)
请在问题中突出显示一些代码。一点也看不懂,那你试过什么?我看不到任何代码…我试过这样$sumArray=array();foreach($k=>$subArray的项){foreach($id=>$value的子数组){$sumArray[$id]+=$value;}}}print\r($sumArray);我遇到了如下致命错误:致命错误:不支持的操作数types@limimathew你能将你的评论中的代码添加到你的问题中吗?@nanditha在我发布我的答案后,你更新了你的示例数据,我的答案中的代码仍然适用于新数据。因此,第一次编辑是可以的。但您的第二次编辑不是。建议的代码不能提供所需的结果。你为什么不勾选标记?