php – 使用循环查找数组差异
发布时间:2020-12-13 22:51:32 所属栏目:PHP教程 来源:网络整理
导读:我是 PHP新手.我想在不使用任何数组函数(如array_diff()或in_array())的情况下找到数组差异. 这是我的代码 $a = array('a','b','c','d','k');$b = array('g','h','i','a','c');$match = array();$miss_match = array();$count_a = count($a);$count_b = coun
我是
PHP新手.我想在不使用任何数组函数(如array_diff()或in_array())的情况下找到数组差异.
这是我的代码 $a = array('a','b','c','d','k'); $b = array('g','h','i','a','c'); $match = array(); $miss_match = array(); $count_a = count($a); $count_b = count($b); for($i=0; $i<$count_a;$i++) { for($j=0; $j<$count_b;$j++) { if($a[$i]==$b[$j]) { $match[] = $a[$i]; break; } else { $miss_match[] = $b[$j]; } } } print_r($match).'<br />'; print_r($miss_match); 我得到了这个结果 Array ( [0] => a [1] => b [2] => c [3] => d ) Array ( [0] => g [1] => h [2] => i [3] => b [4] => g [5] => h [6] => i [7] => g [8] => h [9] => i [10] => b [11] => a [12] => d [13] => g [14] => h [15] => i [16] => b [17] => a [18] => g [19] => h [20] => i [21] => b [22] => a [23] => d [24] => c ) 我的预期结果是
请建议更好的解决方案.谢谢 解决方法
您正在将该元素添加到miss_match数组中,以用于与其不匹配的另一个数组的每个元素.但如果它与此元素不匹配,它可能仍然匹配后面的元素.
在确定它与其中任何一个都不匹配之前,您必须遍历整个阵列. for($i=0; $i<$count_a;$i++) { for($j=0; $j<$count_b;$j++) { $matched = false; if($a[$i]==$b[$j]) { $match[] = $a[$i]; $matched = true; break; } } if (!$matched) { $miss_match[] = $a[$i]; } } 结果: Array ( [0] => a [1] => b [2] => c [3] => d ) Array ( [0] => k ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |