簡體   English   中英

在多維 PHP 數組中求和

[英]Sum in a multidimensional PHP array

我有一個數組,它返回我如下。 我需要添加它們的值,但取決於帳戶“cuenta”、分支“ramo”、子分支“subramo”、特定的“especifica”或子特定的“subespecifica”。

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"
  }
}

你可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM