php - 如何找到特定多维数组值的总和?
问题描述
我有一个关联数组,它有'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 也是一个“字符串”。
解决方案
您可以尝试使用array_sum()
and 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 {
//
};
?>
推荐阅读
- r - 是否有一种 R 方法可以保留数字并丢弃相同值的文本(例如 6 和一点)
- mysql - 如何同时运行 mysql Workbench 的 2 个选项?
- jsonata - JSONata 性能/效率假设
- flutter - 在 ChangeNotifier 的 addListener 回调中使用 setState
- spring-boot - 如何在 Spring Web 服务中设置自定义 EndpointExceptionResolver 的优先级
- reactjs - 从 API 返回结果并使用 react 显示
- python - 重定向标准输出时打印到终端
- java - 如何修复此代码以为每个用户进行收集?
- angular - 在主逻辑之前处理所有响应
- azure - 自定义应用程序的 Microsoft Teams 消息扩展图标不断消失