脚本宝典收集整理的这篇文章主要介绍了php – 如何从两个数组中删除重复对?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
$arr = Array (1,2,3,4,5,6,7,8 ) ;
还有这个:
$arr2 = Array (7,8,1,4 )
这些数组的对是具有相同键的数字($arr [0] – $arr2 [0] ecc.)
1-7 2-6 3-5 4-8 5-3 6-2 7-1 8-4
你可以看到有一些重复的对,如1-7和7-1,2-6和6-2,3-5和5-3,4-8和8-4.
Array ( [0] => 1 [1] => 7 [2] => 2 [3] => 6 [4] => 3 [5] => 5 [6] => 4 [7] => 8 )
你可以看到对是:1-7,2-6,3-5和4-8.
function free_pairs($arr,$arr2){ $ok = 0; $ris = array(); $indice_ris=0; for ($i=1; $i <=count($arr) ; $i++) { $x1 = $arr[$i]; $x2 = $arr2[$i]; for ($j=1; $j <= count($arr2) ; $j++) { $y1 = $arr[$j]; $y2 = $arr2[$j]; if($x1 != $y2 && $x2 != $y1){ $ok = 1; } else { $ok = 0; } } if ($ok == 1) { $ris[$indice_ris] = $x1; $ris[$indice_ris+1] = $x2; $indice_ris = $indice_ris+2; $ok = 0; } return $ris; }
我认为问题在于:
if($x1 != $y2 && $x2 !=$y1)
你有什么想法?
$arr1 = Array (1,8); $arr2 = Array (7,4); $res = free_pairs($arr1,$arr2); PRint_r($res); function free_pairs($arr,$arr2){ $ris = array(); for ($i = 0; $i < count($arr); $i++) { $x1 = $arr[$i]; $x2 = $arr2[$i]; $ok = 0; for ($j = $i+1; $j < count($arr2); $j++) { $y1 = $arr[$j]; $y2 = $arr2[$j]; if($x1 == $y2 && $x2 == $y1){ $ok = 1; } } if ($ok == 0) { $ris[] = $x1; $ris[] = $x2; } } return $ris; }
输出:
Array ( [0] => 5 [1] => 3 [2] => 6 [3] => 2 [4] => 7 [5] => 1 [6] => 8 [7] => 4 )
以上是脚本宝典为你收集整理的php – 如何从两个数组中删除重复对?全部内容,希望文章能够帮你解决php – 如何从两个数组中删除重复对?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。