2017-04-04 97 views
-3

我有這個數組在我的代碼如何使用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的所有元素的總和。如果沒有硬編碼可能。

+1

顯示一些努力,請向我們展示你嘗試過什麼了。 –

+0

您可以使用'var_export($ array)'並編輯您的問題 –

+0

只需遍歷數組或使用任何數組遍歷函數並總結所需的索引。 – Ima

回答

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); 
1

演示代碼你可以做到以下幾點:

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

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

這種方式,你會遍歷所有的陣列,並獲得特定ID的完整總和。

您可以使用它像這樣getSumOfId($yourArray, 5)

1

您可以使用array_reduce()總結目標值。

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

校驗碼結果demo