当前位置: 首页 > 面试题库 >

基于相同键的数组值总和

卢树
2023-03-14
问题内容

我有我的数组数据,如下所示:

Array ( 
  [0] => Array ( [name] => Bank BRI [amount] => 0 ) 
  [1] => Array ( [name] => Bank BRI [amount] => 0 ) 
  [2] => Array ( [name] => Bank BCA [amount] => 1412341234 )
  [3] => Array ( [name] => Bank CIMB Niaga [amount] => 532532552 ) 
  [4] => Array ( [name] => Bank BRI [amount] => 34534534 ) 
  [5] => Array ( [name] => Bank CIMB Niaga [amount] => 453425243 ) 
  [6] => Array ( [name] => Bank BRI [amount] => 0 ) 
  [7] => Array ( [name] => Bank BNI [amount] => 124124 ) 
  [8] => Array ( [name] => Bank CIMB Niaga [amount] => 352345623 ) 
  [9] => Array ( [name] => Bank BCA [amount] => 23432423 ) 
  [10] => Array ( [name] => Bank Mandiri [amount] => 0 ) 
  [11] => Array ( [name] => Bank BCA [amount] => 0 ) 
  [12] => Array ( [name] => Bank BCA [amount] => 0 ) 
  [13] => Array ( [name] => Bank Permata [amount] => 352352353 )
)

如何基于相同的“银行名称”求和“金额”。

我的数据应显示如下:

Bank BRI........... with '*total amount*'
Bank BCA........... with '*total amount*'
Bank CIMB NIAGA.... with '*total amount*'
Bank BNI........... with '*total amount*'
Bank Mandiri....... with '*total amount*'
Bank Permata....... with '*total amount*'

问题答案:
<?php

// array of bank structure
$banks = array();
$banks[] = array('name'=>'Bank BRI','amount'=>rand());
$banks[] = array('name'=>'Bank BRI','amount'=>rand());
$banks[] = array('name'=>'Bank BCA','amount'=>rand());
$banks[] = array('name'=>'Bank CIMB','amount'=>rand());
$banks[] = array('name'=>'Bank BRI','amount'=>rand());
$banks[] = array('name'=>'Bank CIMB','amount'=>rand());
$banks[] = array('name'=>'Bank BRI','amount'=>rand());
$banks[] = array('name'=>'Bank BNI','amount'=>rand());
$banks[] = array('name'=>'Bank CIMB','amount'=>rand());
$banks[] = array('name'=>'Bank BCA','amount'=>rand());
$banks[] = array('name'=>'Bank Mandiri','amount'=>rand());
$banks[] = array('name'=>'Bank BCA','amount'=>rand());
$banks[] = array('name'=>'Bank BCA','amount'=>rand());
$banks[] = array('name'=>'Bank Permata','amount'=>rand());

// begin the iteration for grouping bank name and calculate the amount
$amount = array();
foreach($banks as $bank) {
    $index = bank_exists($bank['name'], $amount);
    if ($index < 0) {
        $amount[] = $bank;
    }
    else {
        $amount[$index]['amount'] +=  $bank['amount'];
    }
}
print_r($amount); //display

// for search if a bank has been added into $amount, returns the key (index)
function bank_exists($bankname, $array) {
    $result = -1;
    for($i=0; $i<sizeof($array); $i++) {
        if ($array[$i]['name'] == $bankname) {
            $result = $i;
            break;
        }
    }
    return $result;
}


 类似资料:
  • 问题内容: 我有2个表:, 的结果应为基于中的父项的子项总和。 我尝试了很多次,但无法弄清楚。 问题答案: 使用递归CTE:

  • 我有一个具有相同键值uid的多维数组。我想把它转换成子数组通过限制Foreachloop.you可以看到两个uid有值100和两个uid有值5465 我想得到这样的阵列。 我可以不使用foreach循环得到结果吗?

  • 我有两个多维数组,我想通过使用其中一个数组的值和另一个数组的键来组合它们。数组如下: 阵列1: 阵列 2: 我想生成的结果数组如下: 有没有一个PHP函数可以用来完成这个任务?

  • 问题内容: 在一个软件中,我将两个数组与函数合并。但是我需要将相同的数组(当然,具有相同的键)添加到现有数组中。 问题: 如您所见,错过了。 那么,如何将 所有这些 具有相同的键合并? 问题答案: 您需要使用而不是。当然,数组中只能有一个等于的键,但是关联的值将是包含和的数组。

  • 我有一个练习,找出出了什么问题。我会感激的帮助:) 编写将具有两个int类型数组和更大的返回数组(如果两个数组中的一个更大)以及与数组相同位置的元素的总和的代码。

  • 我一直在尝试几种方法来找到数组中的对象,其中ID=var,如果找到了,就从数组中删除该对象并返回新的对象数组。 数据: 数据: