在php中添加数组值

时间:2017-10-19 10:55:24

标签: php arrays arraylist multidimensional-array

这是我的阵列。此数据来自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

2 个答案:

答案 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

Demo

答案 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";
}

编辑: 添加了打印代码