如何使两个数组的组合无重复记录和交叉重复删除


$files = ['a','b','c','d','e','f'];
$other = ['a','b','c','d','e','f'];
foreach($files as $k => $file){
foreach($other as $key => $value){
$data = [
'column1' => $file,
'column2' => $value,
];
if($file == $value){
return false
}else{
DB::table('abed')->insert($data);
}
}
}

如何使两个数组的组合无重复记录和交叉重复删除

DB insert like that


|column1 |  column2 | 
|------- |  ------- |
|   a    |  b       |       
|   a    |  c       |
|   a    |  d       |
|   a    |  e       |
|   a    |  f       |
|   b    |  a       |
|   b    |  c       |
|   b    |  d       |
|   b    |  e       |
|   b    |  f       |
|   c    |  a       |
|   c    |  b       |
|   c    |  d       |
|   c    |  e       |
|   c    |  f       |
|   d    |  a       |
|   d    |  b       |
|   d    |  c       |
|   d    |  e       |
|   d    |  f       |
|   e    |  a       |
|   e    |  b       |
|   e    |  c       |
|   e    |  d       |
|   e    |  f       |
|   f    |  a       |
|   f    |  b       |
|   f    |  c       |
|   f    |  d       |
|   f    |  e       |

我想这样插入

|   a   |   b    |          
|   a   |   c    |
|   a   |   d    |
|   a   |   e    |
|   a   |   f    |
|   b   |   c    |
|   b   |   d    |
|   b   |   e    |
|   b   |   f    |
|   c   |   d    |
|   c   |   e    |
|   c   |   f    |
|   d   |   e    |
|   d   |   f    |
|   e   |   f    |

@Vaibhav试试这个,希望这对你有帮助。我还更改了在执行查询只执行一次,而不是执行循环。

$files = ['a','b','c','d','e','f'];
$other = ['a','b','c','d','e','f'];
$data = [];
for($i = 0; $i < count($files); $i++)
{
for($j = $i; $j < count($other); $j++)
{
if($files[$i] != $other[$j])
{
array_push($data,['column1' => $files[$i], 'column2' => $other[$j]]);
}
}   
}
echo "<pre>";
print_r($data);
DB::table('abcd')->insert($data);

您使用的是in_array(),请参考以下代码:

$files = ['a','b','c','d','e','f'];
$other = ['a','b','c','d','e','f'];
foreach($files as $k => $file){
$parrentArray[] = $file;
foreach($other as $key => $value){
$data = [
'column1' => $file,
'column2' => $value,
];
if(in_array($value, $parrentArray) == false){
DB::table('abcd')->insert($data);
}
}
}

这是另一个例子

| a | b || | c | | | d | | | e | | | f | | b c | | | | | b d e b | | | | | f b |

$files = ['a','b','c','d','e','f'];
$other = ['a','b','c','d','e','f'];
$data = [];
for ($i=0;$i< count($files) ; $i++)
{
$counter = $i > 0 ? $i + 1 : 1;
for ($j=$counter;$j< count($other) ; $j++)
{
$data[] = [
'column1' => $files[$i],
'column2' => $other[$j],
];

}   
}

例如

tbody> <<tr>bbbbb
column1column2
b
c
d
e
f
c
d
e
f

最新更新