使用php在多维关联数组中合并和求和值

使用php在多维关联数组中合并和求和值,php,arrays,multidimensional-array,sorting,associative,Php,Arrays,Multidimensional Array,Sorting,Associative,我有一个关联数组,如下所示: Array ( [0] => Array ( [amount] => 3 [name] => Chuck ) [1] => Array ( [amount] => 2 [name] => Steve ) [2] => Array ( [amount] => 5 [name] =>

我有一个关联数组,如下所示:

Array (
    [0] => Array (
        [amount] => 3
        [name] => Chuck
    )
    [1] => Array (
        [amount] => 2
        [name] => Steve
    )
    [2] => Array (
        [amount] => 5
        [name] =>
    )
    [3] => Array (
        [amount] => 4
        [name] => Chuck
    )
    [4] => Array (
        [amount] =>
        [name] => Chuck
    )
)
我需要删除缺少名称或金额的值,例如[2]和[4],然后对每个名称的总数求和,以便最终数组为:

Array (
    [0] => Array (
        [amount] => 7
        [name] => Chuck
    )
    [1] => Array (
        [amount] => 2
        [name] => Steve
    )
) 
试试这个:

$starting_array = array( ... ); // Initial array with your setup
$final_array = array();
$sum = 0;

foreach ($starting_array as $idx => $data) {
  if (!empty($data['amount']) && !empty($data['name'])) {
    $final_array[$idx] = $data;
    $sum += $data['amount'];
  }
}

// After looping through all of the items, $final_array should contain all
// of the specific items that have an amount and name set. In addition, the
// total of all of the amounts will be in $sum.

看看php的。注意:如果
0
是一个允许的值,您可能希望使用它。

对于现在寻找此值的任何人来说,这将更干净:

$sum = array_sum(array_column($data, 'amount'));

你试过编码吗?谢谢,这对清理数组很有效。$idx=$data做什么?这与$key=>$value类似吗?另外,对于每个名称的值求和,您有什么建议吗?再次感谢。@CameronMacfarlane-在php
foreach
循环中,循环遍历数组中的所有项。当您使用语法
foreach($KEY=>$VALUE数组)
时,您将获得每个项的键及其对应的值(在该键处:例如,
$ARRAY[$KEY]=$VALUE
表示每个
$KEY
)。我绝对建议您进一步研究php,以获得更完整的解释。关于每个名字的总和,请检查我的编辑。嗨,亲爱的,再次感谢。我了解$key=>$value如何在foreach循环中工作。我只是问$idx=>$data是否相同,我从未见过这种语法。另外,我希望对每个名称的值求和,而不是所有名称的总和。我试过编辑,但对名字的总数不起作用。我想我在这里找到了我的答案@CameronMacfarlane-是的,这肯定是另一种方法。