不同长度数组同顺序对比找出与原所有数组不重复的数字,不重复的数字要有同顺序,设定取得n个不重复数字,找出所有n个不重复的数字并且自动组成不重复的同顺序组合
时间: 2024-02-18 15:02:33 浏览: 70
以下是一个示例代码,它可以实现您的需求:
```
// 原始数组
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(2, 3, 5, 7);
$array3 = array(1, 3, 5);
// 合并所有数组并去重
$all_numbers = array_unique(array_merge($array1, $array2, $array3), SORT_REGULAR);
// 找出所有不重复的数字并且与原数组顺序相同
$unique_numbers = array();
foreach ($all_numbers as $number) {
if (!in_array($number, $array1) || !in_array($number, $array2) || !in_array($number, $array3)) {
$unique_numbers[] = $number;
}
}
// 设定取得 n 个不重复的数字
$n = 3;
// 找出所有 n 个不重复数字的组合,并确保它们不重复且顺序相同
$combinations = array();
$combinations_count = 0;
while ($combinations_count < 10) {
$random_numbers = array_rand($unique_numbers, $n);
sort($random_numbers);
if (!in_array($random_numbers, $combinations)) {
$combination = array();
foreach ($random_numbers as $index) {
$combination[] = $unique_numbers[$index];
}
$combinations[] = $combination;
$combinations_count++;
}
}
print_r($combinations);
```
上面的代码将输出 10 个由 3 个数字组成的组合,并且这些数字与原始数组不重复且顺序相同。如果您需要不同数量的数字组合,请相应地更改 `$n` 和 `$combinations_count` 的值。
阅读全文