方法:1、用sort()进行数组排序,用count()求数组长度;2、用“长度%2==0”判断长度是偶数还是奇数,若是偶数则中位数为“(数组名[(长度)/2]+数组名[((长度)/2)+1])/2”,反之则为“数组[(长度/2)-0.5”。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php求大数组中位数的方法

实现思想:

  • 使用sort() 对数组进行排序,再使用count()求数组长度

  • 判断数组长度是偶数还是奇数

    如果数组长度是偶数,那么中位数将为 arr[数组长度/2] +arr[(数组长度/2)+1]/ 2

    如果数组长度为奇数,则中位数将是中间元素 arr[(数组长度 / 2) - 0.5]

实现代码:

<?php
header("Content-type:text/html;charset=utf-8");
function f($arr){
	sort($arr);
	$len=count($arr);
	if($len%2==0){
		 // 如果长度是偶数
		 echo "中位数为: ".(($arr[$len/2]+$arr[($len/2)- 1])/2)."<br>";
	}else{
		// 如果长度是奇数
		echo "中位数为: ".($arr[($len/2)-0.5])."<br>";
	}
}
$arr1=[1, 4, 7, 9];
f($arr1);
$arr2=[1, 2, 4, 7, 9];
f($arr2);
?>

1.png


php怎么求大数组的中位数