这是我的阵列。这些数据来自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发布于 2017-10-19 17:05:59
根据问题中的数组,我称它为$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。
发布于 2017-10-19 11:15:43
@B 001的答案是好的,但你会得到注意,因为索引没有定义。为了避免这种情况,您应该检查索引,如果没有定义,就创建它。
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";
}编辑:添加要打印的代码
https://stackoverflow.com/questions/46828312
复制相似问题