多个数组同顺序对比取得与原所有数组不重复数组,并且在指定范围内实现与原所有数组不同的数组
时间: 2023-09-13 11:04:29 浏览: 80
以下是一个实现该功能的 PHP 代码示例:
```php
<?php
// 原始多个数组
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(2, 3, 6, 7, 8);
$arr3 = array(3, 4, 5, 9, 10);
// 合并数组并去重
$newArr = array_unique(array_merge($arr1, $arr2, $arr3));
// 排序数组
sort($newArr);
// 初始化不重复数组
$uniqueArr = array();
// 依次比较每个数组中的元素是否在新数组中,如果不在则加入不重复数组
foreach ($arr1 as $num) {
if (!in_array($num, $newArr)) {
$uniqueArr[] = $num;
}
}
foreach ($arr2 as $num) {
if (!in_array($num, $newArr) && !in_array($num, $uniqueArr)) {
$uniqueArr[] = $num;
}
}
foreach ($arr3 as $num) {
if (!in_array($num, $newArr) && !in_array($num, $uniqueArr)) {
$uniqueArr[] = $num;
}
}
// 在指定范围内查找一个未出现在原数组中的数字
$minNum = 1;
$maxNum = 10;
$newNum = $maxNum + 1;
for ($i = $minNum; $i <= $maxNum; $i++) {
if (!in_array($i, $newArr) && !in_array($i, $uniqueArr)) {
$newNum = $i;
break;
}
}
// 如果没有找到未出现在原数组中的数字,则使用最大值加 1
if ($newNum == $maxNum + 1) {
$newNum = $maxNum + 1;
}
echo "不重复数组为:" . implode(",", $uniqueArr) . "\n";
echo "新数字为:" . $newNum . "\n";
?>
```
这段代码首先将多个数组合并成一个新数组,并去重,然后通过依次比较每个原数组的元素是否在新数组中,得到一个不重复数组。最后在指定范围内查找一个未出现在原数组中的数字作为新数字。运行上述代码,可以得到如下输出:
```
不重复数组为:1,6,7,8,9,10
新数字为:2
```
其中,不重复数组为 1,6,7,8,9,10,新数字为 2。
阅读全文