二维关联数组中相似元素的总和-PHP
我有一个如下的数组二维关联数组中相似元素的总和-PHP,php,multidimensional-array,foreach,associative-array,Php,Multidimensional Array,Foreach,Associative Array,我有一个如下的数组 Array ( [0]=> Array ( [employee_num] =>1009 [employee_name] =>Jane Doe [amount] =>4500.00 ) [1]=> Array
Array (
[0]=> Array
(
[employee_num] =>1009
[employee_name] =>Jane Doe
[amount] =>4500.00
)
[1]=> Array
(
[employee_num] =>1009
[employee_name] =>Jane Doe
[amount] =>2500.00
)
[2]=> Array
(
[employee_num] =>1033
[employee_name] =>Test User
[amount] =>3455.50
)
[3]=> Array
(
[employee_num] =>1009
[employee_name] =>Jane Doe
[amount] =>5500.00
)
[4]=> Array
(
[employee_num] =>1033
[employee_name] =>Test User
[amount] =>7500.00
)
)
我想要得到的是如下所示的数组:
(每个用户有一个条目,其金额值之和为我知道我必须为每个用户使用一个条目,但我无法真正理解如何合并[employee_num]和[employee_name]条目。我事先不知道数组中类似条目的数量或它们的索引
Array (
[0]=> Array
(
[employee_num] =>1009
[employee_name] =>Jane Doe
[amount] =>12500.00
)
[1]=> Array
(
[employee_num] =>1033
[employee_name] =>Test User
[amount] =>10955.50
)
)
我该怎么做?有人能帮忙吗?谢谢。假设$array是原始数组:
$outputArray = array();
foreach ($array as $employeeArray) {
$outputArray[$employeeArray['employee_name']]['employee_num'] = $employeeArray['employee_num'];
$outputArray[$employeeArray['employee_name']]['employee_name'] = $employeeArray['employee_name'];
$outputArray[$employeeArray['employee_name']]['amount'] += $employeeArray['amount'];
}
print_r($outputArray);
$outputArray
的键将是员工的姓名。如果您想按员工人数进行匹配,只需使用$outputArray[$employeeArray['employeenum']]]
而不是$outputArray[$employeeArray['employeename']]
即可。谢谢:)我想获取每个用户的金额总和,但您的代码只获取每个用户的最后一个金额项目。@Thiliniw哦,我对我的解决方案进行了编辑。查看行$outputArray[$employeeArray['employee_name']['amount']+=$employeeArray['amount']代码>。我用了+=
而不是=
。
function sumAmount($data)
{
$rst=array();
foreach($data as $info)
{
if(!isset($rst[$info["employee_num"]]))
$rst[$info["employee_num"]]=$info;
else
$rst[$info["employee_num"]]["amount"]+=$info["amount"];
}
return array_values($rst);
}