php 找出数组中 第二大的数
时间: 2023-08-15 11:05:48 浏览: 95
下面是一个 PHP 函数,可以找出数组中第二大的数:
```php
function findSecondLargest($arr) {
$max = $arr[0];
$secondMax = $arr[0];
for ($i = 1; $i < count($arr); $i++) {
if ($arr[$i] > $max) {
$secondMax = $max;
$max = $arr[$i];
} else if ($arr[$i] > $secondMax && $arr[$i] != $max) {
$secondMax = $arr[$i];
}
}
return $secondMax;
}
```
这个函数先将数组的第一个元素赋值给 `$max` 和 `$secondMax`,然后遍历数组中的每个元素。如果当前元素大于 `$max`,就将 `$max` 的值赋给 `$secondMax`,再将当前元素的值赋给 `$max`;如果当前元素大于 `$secondMax` 且不等于 `$max`,就将当前元素的值赋给 `$secondMax`。最后返回 `$secondMax` 的值就是数组中第二大的数。
相关问题
多个数组同顺序对比取得与原所有数组不重复的所有数字,并自动填充在选定范围内的不重复数组
以下是一个示例代码,可以实现你所需的功能:
```php
// 假设有三个数组 $array1、$array2 和 $array3
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(2, 3, 6, 7, 8);
$array3 = array(3, 4, 5, 9, 10);
// 合并数组
$mergedArray = array_merge($array1, $array2, $array3);
// 找出所有数组中不重复的数字
$uniqueArray = array_unique($mergedArray);
// 在指定范围内生成不重复数组
$start = 1; // 范围的起始值
$end = 10; // 范围的结束值
$filledArray = array();
foreach ($uniqueArray as $num) {
if ($num >= $start && $num <= $end) {
$filledArray[] = $num;
} else {
// 如果数字不在指定范围内,则填充为指定范围内第一个未出现的数字
for ($i = $start; $i <= $end; $i++) {
if (!in_array($i, $mergedArray)) {
$filledArray[] = $i;
break;
}
}
}
}
// 输出所有不重复数字
foreach ($filledArray as $num) {
echo $num . "\n";
}
```
在上面的示例代码中,我们首先使用 `array_merge` 函数将三个数组合并成一个数组,然后使用 `array_unique` 函数去除其中重复的数字,得到了所有不重复的数字。接下来,我们使用一个循环遍历这些数字,判断数字是否在指定范围内,如果是,则加入到 `$filledArray` 数组中;如果不是,则在指定范围内寻找第一个未出现的数字,填充到 `$filledArray` 数组中。最后,我们输出所有不重复数字。
注意,上面的代码只是一个示例,你需要根据自己的实际需求进行修改。
阅读全文