这是我的阵列。此数据来自MySQL
数据库。如何使用PHP
对值求和。这个数组中有很多人的名字。
Array
(
[1] => Array
(
[NAME] => Zoni
[MARK] => 41
)
[2] => Array
(
[NAME] => Zoni
[MARK] => 12
)
[3] => Array
(
[NAME] => Nari
[MARK] => 37
)
[4] => Array
(
[TITLE] => Nari
[MARK] => 51
)
[5] => Array
(
[TITLE] => Lesi
[MARK] => 64
)
[6] => Array
(
[TITLE] => Lesi
[MARK] => 28
)
)
我试过这段代码:
$sum = 0;
foreach ($rv as $item) {
$sum += $item[MARK];
}
我想要这样的结果。如何为此结果编写PHP
代码。我希望使用php
显示如下结果。
Zoni = 53
Nari = 88
Lesi = 92
答案 0 :(得分:1)
根据问题中的数组,我称之为$ar
。
for ($i = 1; $i <= count($ar); $i++) {
$uni = array_unique($ar[$i]);
foreach ($uni as &$v) {
$add[$v][] = $uni["MARK"];
unset($uni["MARK"]);
$sum[$v] = array_sum($add[$v]);
}
}
print_r($sum);
将输出如下:
Array (
[Zoni] => 53
[Nari] => 88
[Lesi] => 92
)
array_unique()
排除共和党人。 array_sum()
计算数组中的MARK
值,并将NAME
值作为参考。 unset()
删除MARK
值,以便仅保留标记的名称和摘要。结果将分配给数组$sum
。
答案 1 :(得分:-1)
@ B001的答案很好,但是你会得到通知,因为索引没有被定义。为了避免这种情况,您应该检查索引并在未定义的情况下创建索引
foreach($array as $arr){
isset($result[$arr["NAME"]]) ? $result[$arr["NAME"]] += $arr["MARK"] : $result[$arr["NAME"]] = $arr["MARK"];
}
foreach($result as $key => $value){
echo $key." = ".$value."\n";
}
编辑: 添加了打印代码