php比较两个数组的差异
原文地址:小时刻个人技术博客:http://small.aiweimeng.top/index.php/archives/9.html php内置函数中有一个array_diff():意思比较两个数组的键值,并返回差集。 下面是通过数组遍历来实现差集: 首先有两个不同的数组$arr_1,$arr_2: 一种方法: function fun($arr_1,$arr_2) { foreach ($arr_1 as $key => $val) { $bool = false; foreach ($arr_2 as $k => $v) { if($bool = ($val == $v)) { break; } } if(!$bool) { $diff[$key] = $val; } } } 这种虽然能够实现数组间的差异,如果数组长度达到一定的长度后,效率不容乐观。 二种方法: foreach ($arr_1 as $key => $val) { if(in_array($val,$arr_2)) { unset($arr_1[$key]); } } 这种方式在其他博客上说可以和array_diff()媲美。 三种方式: 通过array_flip();将arr_2数组键值反转后,判断arr_1数组中的值是否在arr_2的键中 $arr_2 = array_flip($arr_2); foreach ($arr_1 as $key => $val) { if(isset($arr_2[$val])) { unset($arr_1[$key]); } } (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |