PHP:一维数组的和二维数组的元素计数以及求平均值和各元素求和

参考了一下很多个网友的内容做的总结
涉及函数:
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=1counta是个数组则数量会总数会增加 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( a1countmodeCOUNTRECURSIVE(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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用numpy中的索引方式来取值,例如arr[][1]表示取二维数组arr中第一行第二列的元素值。还可以使用切片方式来取出部分元素,例如arr[:2,1:3]表示取二维数组arr中第一行到第二行,第二列到第三列的元素值。此外,还可以使用numpy中的函数来对二维数组进行操作,例如np.sum(arr)表示对二维数组arr中所有元素求和。 ### 回答2: numpy是Python中一个非常常用的数学计算库,可以用于进行各种数值运算、数值分析以及数据处理等工作。在numpy中,二维数组可以被看作是一个矩阵,我们可以使用多种方法来取值。 首先,我们可以使用索引来取值。对于一个二维数组arr,可以使用arr[i][j]的方式来获得矩阵中第i行第j列的元素值。其中i和j分别表示对应的行和列的索引值,索引值从0开始计数。 另外,numpy提供了更简便的语法来进行矩阵的取值操作。我们可以使用arr[i, j]的方式来获得矩阵中第i行第j列的元素值,其结果与arr[i][j]是等价的。 除了使用单个索引值来取值外,我们还可以使用切片的方式来获取矩阵的某个范围内的元素。对于一个二维数组arr,可以使用arr[start_row:end_row, start_col:end_col]的语法来获取从start_row行到end_row行(不包括end_row)以及从start_col列到end_col列(不包括end_col)之间的元素。 此外,numpy还提供了更多灵活的方法来根据条件取值,比如使用布尔型索引、使用where函数等等。 综上所述,numpy提供了多种方法来进行二维数组矩阵的取值操作,包括使用索引、使用切片、使用布尔型索引等等。这些方法可以帮助我们灵活、高效地获取矩阵中的元素值,方便进行后续的计算和分析工作。 ### 回答3: numpy库是Python中常用的数值计算库,其中的ndarray对象是实现数组矩阵操作的基础。在numpy中,我们可以使用一些方法来取得二维数组矩阵的值。 首先,可以通过索引的方式来取得特定位置的元素。索引从0开始,可以用[row, column]的形式来指定某个位置的元素。例如,arr[0, 0]表示取得二维数组矩阵arr中第一行第一列的元素值。 除了单个位置的索引,我们还可以使用切片(slice)的方式来获取二维数组的子矩阵。切片可以使用[start:end:step]的形式来指定取值的范围。其中,start表示起始位置,end表示结束位置,step表示步进值,默认为1。例如,arr[0:2, 1:3]表示取得二维数组矩阵arr中第一行至第二行、第二列至第三列的元素形成的子矩阵。 此外,numpy还提供了一些函数来获取数组的最大值、最小值、平均值、和值等统计结果。例如,可以使用arr.max()来取得二维数组矩阵arr中的最大值,使用arr.min()来取得最小值,使用arr.mean()来取得平均值。 总之,numpy库提供了丰富的方法来获取二维数组矩阵的值,包括索引、切片和统计函数等。这些方法使得我们可以方便地对数组进行操作和计算,提高了数值计算的效率和便捷性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值