2017-04-04 6 views
-3

Ich habe das dieses Array in meinem CodeWie man die Summe der Werte im spezifischen Index des multidimensionalen Feldes mit PHP erhält?

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 

Wie könnte ich Summenelement mit demselben Index erhalten? Beispiel - Summe aller Elemente mit Index 5 oder Index 1. Wenn möglich ohne Hardcode.

+1

einige Mühe Zeigen Sie und zeigen uns, was haben Sie schon versucht. –

+0

Können Sie 'var_export ($ array)' verwenden und Ihre Frage bearbeiten –

+0

Einfach durch das Array oder eine beliebige Array-Walk-Funktion durchlaufen und den gewünschten Index zusammenfassen. – Ima

Antwort

1

Sie diesen Code

dieses Demo-Code für Test

$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

Sie Folgendes tun könnten verwenden können:

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

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

diese Weise werden Sie eine Schleife durch all Ihre Arrays, und die komplette Summe einer bestimmten ID erhalten.

Sie können es wie dieses getSumOfId($yourArray, 5)

1

verwenden Sie array_reduce() Zielwerte summieren können.

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

prüfen Codeergebnis in demo

Verwandte Themen