为了账号安全,请及时绑定邮箱和手机立即绑定

对数组值求和

对数组值求和

PHP
BIG阳 2023-12-15 15:57:13
Array(    [0] => Array( [0] => Array( [value] => 25 ) )    [1] => Array( [0] => Array( [value] => 75 ) )    [2] => Array( [0] => Array( [value] => 10 ) )    [3] => Array( [0] => Array( [value] => 10 ) ))我正在 drupal 中开发一个自定义模块,需要总结 [值], 然而,我使用 array_column、array_sum 尝试了不同的方法,但没有得到解决方案。 任何帮助,将不胜感激。谢谢。代码$contributionDetails = $node->get('field_contributions')->getValue();              foreach ( $contributionDetails as $element ) {    $p = Paragraph::load( $element['target_id'] );    $text[] = $p->field_contribution_percentage->getValue();             }
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

您可以在此处使用 array_map 而不是累加器:


$arraySum = array_map(function ($v) {

  return reset($v)['value'];

}, $text);


print_r(array_sum($arraySum)); // 120

编辑,作为完整示例:


$values = [

    [['value' => 25]],

    [['value' => 75]],

    [['value' => 10]],

    [['value' => 10]],

];


echo array_sum(array_map(function ($v) {

  return reset($v)['value'];

}, $values)); // 120


查看完整回答
反对 回复 2023-12-15
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

几个循环和累加器是实现此目的的一种方法


$tot = 0;

foreach ($array as $a){

    foreach ($a as $b){

        $tot += $b['value'];

    }

}

echo $tot;

或者,如果您确定内部数组始终只出现一次。


$tot = 0;

foreach ($array as $a){

    $tot += $a[0]['value'];

}

echo $tot;

或者使用您刚刚发布的代码


$contributionDetails = $node->get('field_contributions')->getValue();              

$tot = 0;

foreach ( $contributionDetails as $element ) {

    $p = Paragraph::load( $element['target_id'] );

    $text[] = $p->field_contribution_percentage->getValue();

    $tot += $p->field_contribution_percentage->getValue();

}

echo $tot;


查看完整回答
反对 回复 2023-12-15
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

因此,您有一个包含 2 个具有索引“值”的数组的数组,您只需使用嵌套的 foreach 和一个变量来循环每个数组$sum 其总和每次迭代时增加值。


试试这个代码:


<?php 


$sum = 0;

foreach($array as $value) {

    foreach ($value as $v){

        $sum += $v['value'];

    }

}


echo $sum;

这将输出 120


查看完整回答
反对 回复 2023-12-15
  • 3 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信