参考了一下很多个网友的内容做的总结
涉及函数:
count
number_format
array_sum
<?php
//1、求数组的和、平均值
$num=[1,20,53,23,14,12,15];
$sum1=0;
for($i=0,$n=count($num);$i<$n;$i++){//count(array)该函数用来计算数组元素个数
$sum1+=$num[$i];
}
echo 'sum($num):'.$sum1,'<br>'; //和是:138
echo 'avg($num):'.number_format($sum1/count($num),1); //精确到小数点后面1位 平均值:19.7
echo '<hr>'.'下面是二维数组:'.'<br>'; //number_format()设置数字格式
//------------------------------
$nums=[
[1,2,3],
[4,5,6],
[7,8,9]
];
// var_dump($nums);
$sum2=0;
foreach ($nums as $key => $value) {
$sum2+=array_sum($value); //array_sum()函数计算该内层数组中所有元素的和,并与外层元素和相加在一起即可。
echo "第".($key+1)."行求和的值为:".array_sum($value)."<br>"; //内层数组中所有元素的和是指当前行和数值和
}
echo 'sum($nums): '.$sum2.'<br>'; //二维数组的和为45
echo 'avg($nums): '.number_format($sum2/(count($nums,1)-count($nums)),1); //精确到小数点后面1位 二维数组平均值:5.0
/**
count($arr, $mode = 0);
$mode(0:统计一维的所有元素,1:循环统计遍历元素(COUNT_RECURSIVE))
在$mode=1的时候,count函数会循环统计元素的个数,如果元素$a是个数组则数量会总数会增加$a元素数加1;
count函数中如果mode被设置为 COUNT_RECURSIVE(或 1),
则会递归底计算多维数组中的数组的元素个数(也就是count($nums,1)结果的12)。
如果不设置mode默认为0 。不检测多维数组(数组中的数组)(结果3)。
原理:首先遍历的是外面的数组array得出元素有("[1,2,3]″,"[4,5,6]″,"[7,8,9]″) 为3
再遍历("1,2,3″,"4,5,6″,"7,8,9″)数组得出的是9个元素 为9
结果就是3+9=12
**/
?>
count($arr, $mode = 0);
$mode(0:统计一维的所有元素,1:循环统计遍历元素(COUNT_RECURSIVE))
在
m
o
d
e
=
1
的
时
候
,
c
o
u
n
t
函
数
会
循
环
统
计
元
素
的
个
数
,
如
果
元
素
mode=1的时候,count函数会循环统计元素的个数,如果元素
mode=1的时候,count函数会循环统计元素的个数,如果元素a是个数组则数量会总数会增加
a
元
素
数
加
1
;
c
o
u
n
t
函
数
中
如
果
m
o
d
e
被
设
置
为
C
O
U
N
T
R
E
C
U
R
S
I
V
E
(
或
1
)
,
则
会
递
归
底
计
算
多
维
数
组
中
的
数
组
的
元
素
个
数
(
也
就
是
c
o
u
n
t
(
a元素数加1; count函数中如果mode被设置为 COUNT_RECURSIVE(或 1), 则会递归底计算多维数组中的数组的元素个数(也就是count(
a元素数加1;count函数中如果mode被设置为COUNTRECURSIVE(或1),则会递归底计算多维数组中的数组的元素个数(也就是count(nums,1)结果的12)。
如果不设置mode默认为0 。不检测多维数组(数组中的数组)(结果3)。
原理:首先遍历的是外面的数组array得出元素有("[1,2,3]″,"[4,5,6]″,"[7,8,9]″) 为3
再遍历("1,2,3″,"4,5,6″,"7,8,9″)数组得出的是9个元素 为9
结果就是3+9=12