php数组求和函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php数组求和函数相关的知识,希望对你有一定的参考价值。

<?php
$c[1]['学号']=001;
$c[1]['姓名']=12;
$c[1][1]=10;
$c[1][3]=20;
$c[1][31]=30;
$c[1]['网页']=40;
$c[1][3]='50';

$c[2]['学号']=002;
$c[2]['姓名']=123;
$c[2][1]=20;
$c[2][2']=30;
$c[2][31]=40;
$c[2]['网页']=50;
$c[2][3]='60';

$c[3]['学号']=003;
$c[3]['姓名']=1237;
$c[3][1]=30;
$c[3][2]=40;
$c[3][31]=50;
$c[3]['网页']=60;
$c[3][3]=70;

$c[4]['学号']=004;
$c[4]['姓名']=1257;
$c[4][1]=40;
$c[4][2]=50;
$c[4][31]=60;
$c[4]['网页']=70;
$c[4][3]=80;

$c[5]['学号']=005;
$c[5]['姓名']=12485;
$c[5][1]=100;
$c[5][2]=100;
$c[5][31]=100;
$c[5]['网页']=100;
$c[5][3]=100;

$c[6]['学号']=006;
$c[6]['姓名']=253;
$c[6][1]=100;
$c[6][2]=100;
$c[6][31]=100;
$c[6]['网页']=100;
$c[6][3]=100;

$c[7]['学号']=007;
$c[7]['姓名']=12542;
$c[7][1]=100;
$c[7][2']=100;
$c[7][31]=100;
$c[7]['网页']=100;
$c[7][3]=100;
print "<pre>";
print_r($c);
print "</pre>";
$sum=array_merge( $c['电商7'][3]=100;);
print "sum=".$sum;
?>
这是个简单的数组 想求出所有人网页的和那块错了 啊 大家给看看

php数组求和函数代码:
  <?php
  for($i=0;$i<=count($c);$i++)
  $sum+=$c[$i][\'网页\'];
  
  ?>

php编程技术:
  PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般html网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。
  PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,可以从PHP官方站点自由下载。PHP遵守 GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装 PHP的资料可以在PHP官方站点上找到。安装过程很简单。
参考技术A <?php
header("Content-Type:text/html;charset=utf-8");
$c[1]['学号']=001;
$c[1]['姓名']=12;
$c[1][1]=10;
$c[1][3]=20;
$c[1][31]=30;
$c[1]['网页']=40;
$c[1][3]='50';

$c[2]['学号']=002;
$c[2]['姓名']=123;
$c[2][1]=20;
$c[2][2]=30;
$c[2][31]=40;
$c[2]['网页']=50;
$c[2][3]='60';

$c[3]['学号']=003;
$c[3]['姓名']=1237;
$c[3][1]=30;
$c[3][2]=40;
$c[3][31]=50;
$c[3]['网页']=60;
$c[3][3]=70;

$c[4]['学号']=004;
$c[4]['姓名']=1257;
$c[4][1]=40;
$c[4][2]=50;
$c[4][31]=60;
$c[4]['网页']=70;
$c[4][3]=80;

$c[5]['学号']=005;
$c[5]['姓名']=12485;
$c[5][1]=100;
$c[5][2]=100;
$c[5][31]=100;
$c[5]['网页']=100;
$c[5][3]=100;

$c[6]['学号']=006;
$c[6]['姓名']=253;
$c[6][1]=100;
$c[6][2]=100;
$c[6][31]=100;
$c[6]['网页']=100;
$c[6][3]=100;

$c[7]['学号']=007;
$c[7]['姓名']=12542;
$c[7][1]=100;
$c[7][2]=100;
$c[7][31]=100;
$c[7]['网页']=100;
$c[7][3]=100;

print "<pre>";
print_r($c); // 这是你原来的数组

// 每一个二维数组的第 5 个元素的键名都是 网页,所有要对求它们的和,只要把它从原数组中提取出来就可以了

// 利用数组地图函数,把相同位置的元素合并成一个数组
$aMap=array_map(null,$c[1],$c[2],$c[3],$c[4],$c[5],$c[6],$c[7]);
print_r($aMap[5]); // 第 5 个元素(是个数组)就是 所有索引为 网页 的元素;
// 求和
$iSum=array_sum($aMap[5]); // 这里对所有键名为 网页 的元素求和

print "</pre>";
echo '结果为:'.$iSum;

?>
参考技术B foreach($c as $row)

$sum+=$row['网页'];


echo $sum;追问

用for循环咋做啊
你刚才的foreach循环很好

追答<?php
 for($i=0;$i<=count($c);$i++)
  $sum+=$c[$i]['网页'];
 


?>

本回答被提问者采纳

PHP递归函数对所有孩子的特定值求和

【中文标题】PHP递归函数对所有孩子的特定值求和【英文标题】:PHP recursive function to sum specifix value in all childs 【发布时间】:2021-11-22 21:22:54 【问题描述】:

PHP 递归函数对所有子项中的特定值求和

我遇到了将数组中的所有子值求和的问题,我刚刚创建了一个简单的函数来解决我的问题。我分享这个是为了提高知识。

$json = '
    "name": "ABC",
    "subArr": [
            "name": "def",
            "count": 10,
            "subArr": [
                    "name": "ghi",
                    "count": 5
                , 
                    "name": "jkl",
                    "count": 15,
                    "subArr": [
                            "name": "mno",
                            "count": 5
                        ]
                ]
        , 
            "name": "pqr",
            "count": 10,
            "subArr": [
                    "name": "stu",
                    "count": 5
                , 
                    "name": "vwx",
                    "count": 15,
                    "subArr": [
                            "name": "yz",
                            "count": 5,
                            "subArr": [
                                    "name": "yz",
                                    "count": 5,
                                    "subArr": [
                                            "name": "yz",
                                            "count": 5
                                        ]
                                ]
                        ]
                ]
        ]
';

【问题讨论】:

【参考方案1】:
$json = '
    "name": "ABC",
    "subArr": [
            "name": "def",
            "count": 10,
            "subArr": [
                    "name": "ghi",
                    "count": 5
                , 
                    "name": "jkl",
                    "count": 15,
                    "subArr": [
                            "name": "mno",
                            "count": 5
                        ]
                ]
        , 
            "name": "pqr",
            "count": 10,
            "subArr": [
                    "name": "stu",
                    "count": 5
                , 
                    "name": "vwx",
                    "count": 15,
                    "subArr": [
                            "name": "yz",
                            "count": 5,
                            "subArr": [
                                    "name": "yz",
                                    "count": 5,
                                    "subArr": [
                                            "name": "yz",
                                            "count": 5
                                        ]
                                ]
                        ]
                ]
        ]
';


function countTotal($array, &$total) 
    foreach ($array["subArr"] as $row) 
        $total = $total + $row['count'];
        if (!empty($row["subArr"])) 
            countTotal($row, $total);
        
    
    return $total;


$total = 0;

$finalCount = countTotal(json_decode($json, true), $total);

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于php数组求和函数的主要内容,如果未能解决你的问题,请参考以下文章

php二维数组,相同值求和,并返回新的数组

PHP - 求和数组键值,其中 2 个或多个其他键相等,同时保持数组结构

PHP递归函数对所有孩子的特定值求和

CSV文件操作,PHP如何对满足条件的二维数组进行求和

php如何获取淘宝api返回数组里的值?

php里说出数组的常用函数及用法?