首页 / PHP / php – 使用循环查找数组差异
php – 使用循环查找数组差异
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 使用循环查找数组差异,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1270字,纯文字阅读大概需要2分钟。
内容图文
![php – 使用循环查找数组差异](/upload/InfoBanner/zyjiaocheng/771/4cc928fd45da4cadaef086819e354c87.jpg)
我是PHP新手.我想在不使用任何数组函数(如array_diff()或in_array())的情况下找到数组差异.
这是我的代码
$a = array('a','b','c','d','k');
$b = array('g','h','i','b','a','d','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 )
我的预期结果是
Array ( [0] => g [1] => h [2] => i [3] => k )
请建议更好的解决方案.谢谢
解决方法:
您正在将该元素添加到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
)
内容总结
以上是互联网集市为您收集整理的php – 使用循环查找数组差异全部内容,希望文章能够帮你解决php – 使用循环查找数组差异所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。