如何找到特定多维数组值的总和? [复制]

Posted

技术标签:

【中文标题】如何找到特定多维数组值的总和? [复制]【英文标题】:How to the find the sum of a specific multi dimentional array value? [duplicate] 【发布时间】:2020-10-09 08:51:51 【问题描述】:

我有一个关联数组,它有'question'、'maxmark'、'qpno'。 (这是表单提交的 Post 请求数据。)

array (size=3)
'question' => string 'Question one' (length=12)
'maxmark' => string '5' (length=1)
'qpno' => string 'QB345' (length=5)

array (size=3)
'question' => string 'Question two' (length=12)
'maxmark' => string '10' (length=1)
'qpno' => string 'QB345' (length=5)

array (size=3)
'question' => string 'Question three' (length=12)
'maxmark' => string '5' (length=1)
'qpno' => string 'QB345' (length=5)

我有一个变量,$total_mark = 25;

我想从多维关联数组中添加所有'maxmark'并检查它是否等于$total_mark;

if( sum of all maxmark = $total_mark ) 
do this
 else 
do something else
  

请帮忙。

注意:多维数组中的数组数量不同。 maxmark 也是一个“字符串”。

【问题讨论】:

【参考方案1】:

您可以尝试使用array_sum()array_column()

<?php
$array = array(
    array(
      'question' => 'Question one',
      'maxmark' => '5',
      'qpno' => 'QB345'
    ),    
    array (
      'question' => 'Question two',
      'maxmark' => '10',
      'qpno' => 'QB345'
    ),    
    array (
      'question' => 'Question three',
      'maxmark' => '5',
      'qpno' => 'QB345'
    )        
);

$total_mark = 25;
$sum_mark = array_sum(array_column($array, 'maxmark'));

if ($total_mark == $sum_mark) 
    //
 else     
   //
;   

?>

【讨论】:

以上是关于如何找到特定多维数组值的总和? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如果数组存在于另一个多维数组中,如何从多维数组中删除该数组? [复制]

php计算多维数组某个值的和

如何使用 jquery 创建具有来自动态创建的表单字段的值的多维数组?

多维数组索引 C++ 中的多维数组

对象值的Javascript数组转换为多维数组

如何在 Javascript 中创建多维数组? [复制]