如何用最快最有效率的方法筛选掉重复数据。 RT。我有3个数组,结构如下1,2,3,4,5,6,7,82,3,4,5,9,11,225,67,34,77,86,1,2如何筛选掉3个数组中有重复出现的数据。得到一个新的数组? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $a[] = array(1,2,3,4,5,6,7,8);$a[] = array(2,3,4,5,9,11,22);$a[] = array(5,67,34,77,86,1,2);$res = array();foreach($a AS $val){ foreach($val AS $v) { $res[$v] = isset($res[$v]) ? 0 : 1; }}print_r(array_keys($res, 1));/*Array ( [0] => 6 [1] => 7 [2] => 8 [3] => 9 [4] => 11 [5] => 22 [6] => 67 [7] => 34 [8] => 77 [9] => 86 )*/ array_intersect() 函数返回两个或多个数组的交集数组。结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。注释:仅有值用于比较。语法array_intersect(array1,array2,array3...) <?$array1 = array(1,2,3,4,5,6,7,8);$array2 = array(2,3,4,5,9,1,22);$array3 = array(5,67,34,77,86,1,2);$array=array_intersect($array1,$array2,$array3);print_r($array);?> 可能我理解错LZ意思了array_intersect返回的是2或者更多数组的最大公共子集。如果需要这个结果,自然首选这个函数=======================如果是N个数组中,列出仅出现一次的元素,则不适用该函数。前面#1稍微修改下,就能随便找出出现几次的函数 你说的重复分两种情况1.三个数组同时出现相同的数据:array_intersect(array1,array2,array3...)2.只要一个数据在其中两个数组出现过:参考1楼解法! 使用函数array_merge和array_unique$array1 = array(1,2,3,4,5,6,7,8);$array2 = array(2,3,4,5,9,1,22);$array3 = array(5,67,34,77,86,1,2);$ar = array_merge($array1, $array2, $array3);$ar = array_unique($ar);至于哪种方法高效,可以自己计算一下效率 array_unique会保留一个重复出现的结果 对,我这里不需要重复的值,一开始我把值当做另一个数组的键,用HASHMAP 我记得键是唯一的。所以不会有重复。 ecshop 手机版与电脑切换问题 phpr软件zend studio问题 关于数组问题 找人:信用卡支付php 用PHP设置图片可见后,怎么样指定一个输出的位置? fileinode高手来帮看下 配色器 怎样将 config.inc.php 和 MySQL 服务器设置一致? 我用的是PHP和MSSQL写的网页,可在MSSQL里面好像不能把全部的文字读出来,大约只能显示其一万字左右, 请问有没有带用户认证的PHPMyAdmin? php readdir 初学php 弄不懂
$a[] = array(1,2,3,4,5,6,7,8);
$a[] = array(2,3,4,5,9,11,22);
$a[] = array(5,67,34,77,86,1,2);
$res = array();
foreach($a AS $val)
{
foreach($val AS $v)
{
$res[$v] = isset($res[$v]) ? 0 : 1;
}
}
print_r(array_keys($res, 1));
/*
Array ( [0] => 6 [1] => 7 [2] => 8 [3] => 9 [4] => 11 [5] => 22 [6] => 67 [7] => 34 [8] => 77 [9] => 86 )
*/
array_intersect() 函数返回两个或多个数组的交集数组。结果数组包含了所有在被比较数组中,也同时出现在所有其他参数数组中的值,键名保留不变。注释:仅有值用于比较。语法
array_intersect(array1,array2,array3...)
$array1 = array(1,2,3,4,5,6,7,8);
$array2 = array(2,3,4,5,9,1,22);
$array3 = array(5,67,34,77,86,1,2);$array=array_intersect($array1,$array2,$array3);
print_r($array);
?>
=======================如果是N个数组中,列出仅出现一次的元素,则不适用该函数。前面#1稍微修改下,就能随便找出出现几次的函数
$array2 = array(2,3,4,5,9,1,22);
$array3 = array(5,67,34,77,86,1,2);$ar = array_merge($array1, $array2, $array3);
$ar = array_unique($ar);至于哪种方法高效,可以自己计算一下效率