Как получить сумму значений в конкретном индексе многомерного массива с помощью 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

Как я могу получить элемент суммы с тем же индексом? Forexample — сумма всех элементов с индексом 5 или индексом 1. Если это возможно без жесткого кода.

-3

Решение

Вы можете использовать этот код

это демонстрационный код для теста

$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 );
2

Другие решения

Вы можете сделать следующее:

function getSumOfId($array, $id) {
$sumOfId = 0;

foreach($array as $arr) {
$sumOfId += $arr[$id];
}
return $sumOfId;
}

Таким образом, вы будете перебирать все свои массивы и получать полную сумму определенного идентификатора.

Вы можете использовать это так getSumOfId($yourArray, 5)

1

Ты можешь использовать array_reduce() суммировать целевые значения.

$sum = array_reduce($arr, function($carry, $item){
$carry += $item[5];
return $carry;
});
echo $sum;

Результат проверки кода в демонстрация

1