2017-02-06 4 views
-1

У меня есть массив, и он возвращает меня следующим образом. Мне нужно добавить их значения, но в зависимости от учетной записи «cuenta», ветви «ramo», суб-ветви «subramo», конкретной «especifica» или подтипы «subespecifica».Сумма в многомерном массиве PHP

array(5) { 
    [0]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "2" 
    ["especifica"]=> 
    string(2) "19" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(6) "354.00" 
    } 
    [1]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "2" 
    ["especifica"]=> 
    string(2) "11" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(6) "543.74" 
    } 
    [2]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "2" 
    ["especifica"]=> 
    string(2) "11" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(6) "985.54" 
    } 
    [3]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "1" 
    ["especifica"]=> 
    string(1) "8" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(6) "177.00" 
    } 
    [4]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "1" 
    ["especifica"]=> 
    string(1) "2" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(5) "88.50" 
    } 
} 

Мне нужно вернуть общую сумму в зависимости от того, что я только что упомянул. то есть:

array(4) { 
    [0]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "2" 
    ["especifica"]=> 
    string(2) "19" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(6) "354.00" 
    } 
    [1]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "2" 
    ["especifica"]=> 
    string(2) "11" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(6) "1529.28" 
    } 
    [2]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "1" 
    ["especifica"]=> 
    string(1) "8" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(6) "177.00" 
    } 
    [3]=> 
    array(6) { 
    ["cuenta"]=> 
    string(1) "1" 
    ["ramo"]=> 
    string(1) "1" 
    ["subramo"]=> 
    string(1) "1" 
    ["especifica"]=> 
    string(1) "2" 
    ["subespecifica"]=> 
    string(1) "0" 
    ["costo"]=> 
    string(5) "88.50" 
    } 
} 

ответ

1

Вы можете использовать array_map:

<?php 

$input = array(
    array(
     'first' => 1, 
     'second' => 2, 
    ), 
    array(
     'third' => 3 
    ) 
); 

echo array_sum(array_map(function($arr) { 
    return array_sum($arr); 
}, $input)); // Outputs 6 
Смежные вопросы