php 二维数组取中位数
时间: 2023-02-19 13:10:47 浏览: 94
要求二维数组的中位数,需要先将二维数组中的所有元素合并成一个一维数组,然后再求一维数组的中位数。
具体实现可以这样:
```
<?php
$array = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
$flat_array = array_reduce($array, 'array_merge', []);
sort($flat_array);
$count = count($flat_array);
$middle = intval($count / 2);
if ($count % 2 == 0) {
$median = ($flat_array[$middle - 1] + $flat_array[$middle]) / 2;
} else {
$median = $flat_array[$middle];
}
echo $median;
```
这样就可以求出二维数组的中位数了。
相关问题
PHP用二维数组计算五位同学平均成绩
在PHP中,你可以使用二维数组来存储每个同学的姓名及其分数,然后通过遍历数组计算所有同学的总分,最后除以同学数得到平均成绩。以下是一个简单的示例:
```php
// 假设我们有一个二维数组,其中包含5位同学的成绩
$students = array(
array("name" => "小明", "score" => 85),
array("name" => "小红", "score" => 90),
array("name" => "小亮", "score" => 92),
array("name" => "小华", "score" => 87),
array("name" => "小李", "score" => 88)
);
// 计算总分
$totalScore = 0;
foreach ($students as $student) {
$totalScore += $student["score"];
}
// 计算平均成绩并保留两位小数
$averageScore = number_format($totalScore / count($students), 2);
echo "五位同学的平均成绩是:" . $averageScore . " 分.";
php 根据键值合并二位数组
可以使用 PHP 中的 array_merge_recursive() 函数来合并二维数组,该函数会递归地将数组合并,如果键名相同,则将值合并成一个数组。
下面是一个示例代码:
```php
$array1 = array(
"a" => array("b" => 1, "c" => 2),
"d" => array("e" => 3, "f" => 4)
);
$array2 = array(
"a" => array("c" => 3, "d" => 4),
"d" => array("f" => 5, "g" => 6)
);
$result = array_merge_recursive($array1, $array2);
print_r($result);
```
输出结果为:
```
Array
(
[a] => Array
(
[b] => 1
[c] => Array
(
[0] => 2
[1] => 3
)
[d] => 4
)
[d] => Array
(
[e] => 3
[f] => Array
(
[0] => 4
[1] => 5
)
[g] => 6
)
)
```
可以看到,数组合并后,键名相同的值已经被合并成了一个数组。
阅读全文