如何统计php数组值的和?

Posted

tags:

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

$sf=array('w'=>array(23,12,43),'f'=>array(543,52,765),'t'=>array(435,634,636));如上述数组,需要计算下列23+543+435,12+52+634,43+765+636和分别是多少,而且数组的key数量不确定。
有些同志回答问题,都不看清楚细节。靠人不如靠己。
function get_sum($arr)
$new_arr=array_values($arr);
$col=count($new_arr[0]);
for ($k=1;$k<=$col;$k++)
$sum=0;
foreach ($new_arr as $value)
$n=$value[$k-1];
$sum+=$n;

$sum_arr[]=$sum;

print_r($sum_arr);

首先,对于简单的数组,可以使用array_sum函数来实现,函数的格式如下:

number array_sum       ( array $array      )

 

函数例子:

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\\n";
?>

以上例程会输出:

sum(a) = 20
sum(b) = 6.9

此外,对于复杂格式的数组,可以自己使用foreach结构计算和,例如:

<?php
    $a=array(1,2,3,4);
    $s=0;
    foreach ($a as $v) $s+=$v;
    echo "sum=$s";
?>
参考技术A 循环就行了追问

怎么循环?

追答

循环数组不会?

foreach

追问

新手,写不出来

参考技术B foreach()
foreach()
参考技术C 没一个回答的好

用array_sum() 不解释
参考技术D for($i=0;$i<count($sf[w])||$i<count($sf[f][$i])||$i<count($sf[t]);$i++)

if($i>=count($sf[w]))
$sf[w]['$i']='0';

if($i>=count($sf[f]))
$sf[f]['$i']='0';

if($i>=count($sf[t]))
$sf[t]['$i']='0';

$tol = $sf[w][$i]+$sf[f][$i]+$sf[t][$i];

PHP数组功能汇集

统计:

array_count_values     统计数组中所有的值出现的次数

array_product         计算数组中所有值的乘积
array_sum         计算数组中所有值的和
count             计算数组中的单元数目或对象中的属性个数
sizeof count() 的别名


搜索:
array_key_exists     检查给定的键名或索引是否存在于数组中
array_search         在数组中搜索给定的值,如果成功则返回相应的键名
in_array         检查数组中是否存在某个值


排序:
array_multisort     对多个数组或多维数组进行排序
arsort             对数组进行逆向排序并保持索引关系
asort             对数组进行排序并保持索引关系
krsort             对数组按照键名逆向排序
ksort             对数组按照键名排序
natcasesort         用“自然排序”算法对数组进行不区分大小写字母的排序
natsort         用“自然排序”算法对数组排序
rsort             对数组逆向排序
sort             对数组排序
uasort             使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort             使用用户自定义的比较函数对数组中的键名进行排序
usort             使用用户自定义的比较函数对数组中的值进行排序
shuffle         将数组打乱


交集:
array_intersect_assoc     带索引检查计算数组的交集
array_intersect_key    使用键名比较计算数组的交集
array_intersect_uassoc  带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey    用回调函数比较键名来计算数组的交集
array_intersect     计算数组的交集
array_key_exists     用回调函数比较键名来计算数组的交集
array_uintersect_assoc  带索引检查计算数组的交集,用回调函数比较数据
array_uintersect     计算数组的交集,用回调函数比较数据


差集:
array_udiff_assoc     带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc    带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff         用回调函数比较数据来计算数组的差集
array_diff_assoc     带索引检查计算数组的差集
array_diff_key         使用键名比较计算数组的差集
array_diff_uassoc     用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey     用回调函数对键名比较计算数组的差集
array_diff         计算数组的差集


获取数组的部分内容:
array_chunk         将一个数组分割成多个
array_filter         用回调函数过滤数组中的单元
array_keys         返回数组中所有的键名
array_slice         从数组中取出一段
array_values         返回数组中所有的值


加工出所需数组:
array_combine         创建一个数组,用一个数组的值作为其键名,另一个数组的值作 为其值
array_fill         用给定的值填充数组
array_flip        交换数组中的键和值
array_map         将回调函数作用到给定数组的单元上
array_merge_recursive     递归地合并一个或多个数组
array_merge         合并一个或多个数组
array_pad         用值将数组填补到指定长度
array_push         将一个或多个单元压入数组的末尾(入栈)
array_reverse         返回一个单元顺序相反的数组
array_shift         将数组开头的单元移出数组
array_splice         把数组中的一部分去掉并用其它值取代
array_unique         移除数组中重复的值
array_unshift         在数组开头插入一个或多个单元
array_walk_recursive     对数组中的每个成员递归地应用用户函数
array_walk         对数组中的每个成员应用用户函数
compact         建立一个数组,包括变量名和它们的值
range             建立一个包含指定范围单元的数组


单元:
array_pop         将数组最后一个单元弹出(出栈)
array_rand         从数组中随机取出一个或多个单元
current         返回数组中的当前单元
pos current() 的别名
each             返回数组中当前的键/值对并将数组指针向前移动一步
end             将数组的内部指针指向最后一个单元
key             返回数组中当前单元的键名
list             把数组中的值赋给一些变量
next             将数组中的内部指针向前移动一位
prev             将数组的内部指针倒回一位
reset             将数组的内部指针指向第一个单元


其他:
array_reduce        用回调函数迭代地将数组简化为单一的值
extract            从数组中将变量导入到当前的符号表
array             新建一个数组

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

php 数组汇集

PHP数组功能汇集

PHP获取二维数组指定字段值的和

073-PHP数组元素相加

php 怎样从一个数组中取出所有元素

如何在php中修剪数组值的空格