【问题标题】:Addition array values in php在php中添加数组值
【发布时间】:2018-03-31 09:33:19
【问题描述】:

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

【问题讨论】:

  • 向我们展示您迄今为止一直在尝试的代码 + 告诉我们该代码存在什么问题
  • 您所要做的就是尝试一下。
  • $sum = 0; foreach ($rv as $item) { $sum += $item[MARK]; } 这是我试过的代码。
  • 为什么前两个数组键的标题和后续数组的标题?

标签: php arrays arraylist multidimensional-array


【解决方案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() 以相同的NAME 值作为参考来计算数组中的MARK 值。 unset() 删除 MARK 值,以便只保留名称和标记摘要。结果将分配给数组$sum

Demo

【讨论】:

  • 非常感谢您的回答
  • [TITLE] =&gt; Lesi [Subject] =&gt; maths [MARK] =&gt; 28 如果我喜欢这个数组。我可以用这个你的代码吗我的朋友。
  • 谢谢,不客气。我在问题中回答了您的代码。如果您想在数组中进行其他更改,您应该在之前将其放在您的问题中,或者只是为此问题打开一个新问题
【解决方案2】:

@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";
}

编辑: 添加打印代码

【讨论】:

  • 这是一个非常难以辨认的代码 + 由于 2 个问题它不起作用:1. OPs 问题 2 中的键是大写的。您的代码结果是 = Array ( [41] =&gt; 41 [12] =&gt; 12 [37] =&gt; 37 ) 这是不正确的...请仔细阅读问题和代码,并在下次发布之前测试您的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 2022-11-14
  • 2014-11-01
相关资源
最近更新 更多