不同长度数组同顺序对比取得与原所有数组都不重复的数字,并设定数组范围,自动找出所有不重复数字和未出现的数字,并自动填充
时间: 2024-02-18 13:01:54 浏览: 59
以下是一个实现方式:
```php
$originalArrays = array(
array(1, 2, 3, 4, 5),
array(2, 3, 4),
array(3, 4, 6, 7)
);
$minValue = 1;
$maxValue = 10;
// 先将所有数组合并成一个数组
$mergedArray = call_user_func_array('array_merge', $originalArrays);
// 找出所有不重复的数字
$uniqueArray = array_unique($mergedArray);
// 找出所有未出现的数字
$missingArray = range($minValue, $maxValue);
$missingArray = array_diff($missingArray, $uniqueArray);
// 将所有数组都填充为不重复的数字
foreach ($originalArrays as &$array) {
$array = array_unique($array);
$missingCount = count($array) - count($uniqueArray);
if ($missingCount > 0) {
$missingSlice = array_slice($missingArray, 0, $missingCount);
$array = array_merge($array, $missingSlice);
$missingArray = array_slice($missingArray, $missingCount);
}
}
print_r($originalArrays);
```
代码的思路是先将所有数组合并成一个数组,然后找出所有不重复的数字和未出现的数字。接着,遍历每个数组,将其填充为不重复的数字,并在需要时从未出现的数字中取出填充。最后输出更新后的所有数组。
阅读全文