How to add the values of a multidimensional array in PHP

3

I would like to know if I have this array in PHP

array (size=5)
  94 => 
    array (size=4)
      0 => string '7' (length=1)
      1 => string '7' (length=1)
      2 => string '7' (length=1)
      3 => string '7' (length=1)
  95 => 
    array (size=3)
      0 => string '6' (length=1)
      1 => string '6' (length=1)
      2 => string '6' (length=1)
  96 => 
    array (size=5)
      0 => string '5' (length=1)
      1 => string '5' (length=1)
      2 => string '5' (length=1)
      3 => string '5' (length=1)
      4 => string '5' (length=1)
  99 => 
    array (size=6)
      0 => string '3' (length=1)
      1 => string '3' (length=1)
      2 => string '3' (length=1)
      3 => string '3' (length=1)
      4 => string '3' (length=1)
      5 => string '3' (length=1)
  105 => 
    array (size=2)
      0 => string '4' (length=1)
      1 => string '4' (length=1)

how to add the values of each group so that I stay like this:

array (size=5)
  94 => 
    array (size=1)
      0 => string '28' (length=1)      
  95 => 
    array (size=1)
      0 => string '18' (length=1)
  96 => 
    array (size=1)
      0 => string '25' (length=1)      
  99 => 
    array (size=1)
      0 => string '18' (length=1)      
  105 => 
    array (size=1)
      0 => string '8' (length=1)

Then we can multiply the value of the sum obtained by the external value of the array in this way:

94*28
95*18
96*25
99*18
105*8
    
asked by Ariochy Castiñeira Pilotos 04.08.2017 в 21:38
source

3 answers

0

The easiest thing I see is to use array_map () with array_sum () .

On a line

$b = array_map("array_sum", $array);

Example:

<?php
$arr = array (
    94 => array (
      0 => '7',
      1 => '7',
      2 => '7',
      3 => '7',
      ),
    95 => array (
      0 => '6',
      1 => '6',
      2 => '6',
      ),
    96 => array (
      0 => '5',
      1 => '5',
      2 => '5',
      3 => '5',
      4 => '5',
      ),
    99 => array (
      0 => '3',
      1 => '3',
      2 => '3',
      3 => '3',
      4 => '3',
      5 => '3',
      ),
    105 => array (
      0 => '4',
      1 => '4',
      ),
);


$b = array_map("array_sum", $arr);

print_r($b);

// Multiplicar
foreach ($b as $clave => $valor){
    echo $clave * $valor."\n";
}

Resusltado:

// Suma
Array
(
    [94] => 28
    [95] => 18
    [96] => 25
    [99] => 18
    [105] => 8
)

// Multiplicación
2632
1710
2400
1782
840
    
answered by 05.08.2017 / 00:14
source
2

Using the array_sum () function:

$arr = [[1, 1], [2, 2], [1, 2, 3, 4]];

foreach ($arr as $k=>$v) {
    $arr[$k] = array_sum($v);
}

var_dump($arr);

Result in:

array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(10) }
    
answered by 04.08.2017 в 21:52
0

Using the function array_sum ():

foreach ($arreglo as $posicion_arreglo => $valor_arreglo) {
    echo "$posicion_arreglo". "*". array_sum($valor_arreglo) . '<br>';
    /* Así se imprime lo siguiente:
    94*28
    95*18
    96*25
    99*18
    105*8 */
    //para obtener la multiplicación seria:
    echo $posicion_arreglo * array_sum($valor_arreglo);
    /* Así se imprime lo siguiente:
    2632
    1710
    2400
    1782
    840 */
}

Manual php funcion array_sum

    
answered by 04.08.2017 в 22:08