一些简单的解决方案:
$array = [
[10, 'DOLLAR'],
[20, 'DOLLAR'],
[25, 'EURO'],
[20, 'DOLLAR'],
[25, 'EURO'],
];
$sums = [];
foreach ($array as $item) {
if (empty($sums[$item[1]])) {
$sums[$item[1]] = $item[0];
} else {
$sums[$item[1]] += $item[0];
}
}
echo'<pre>',print_r($sums),'</pre>';
//Array
//(
// [DOLLAR] => 50
// [EURO] => 50
//)
扩展示例:
$array = [
[10, 'DOLLAR', 'XYZ1010'],
[20, 'DOLLAR', 'ABC'],
[25, 'EURO', 'XYZ1010'],
[20, 'DOLLAR', 'XYZ1010'],
[25, 'EURO', 'ABC'],
];
$sums = [];
foreach ($array as $item) {
if (strpos($item[2], 'XYZ') !== false) {
if (empty($sums[$item[1]])) {
$sums[$item[1]] = $item[0];
} else {
$sums[$item[1]] += $item[0];
}
}
}
echo'<pre>',print_r($sums),'</pre>';
//Array
//(
// [DOLLAR] => 30
// [EURO] => 25
//)
不要创建大量名称为$dol、$gbp 等的变量。使用带有键的单个数组。