php数据合并去掉重复 php数据合并去掉重复数据

php如何删除两个数组中相同的元素首先,我看到这个问题中描述是“如何删除两个数组中相同的元素” , 虽然那个人写了一大堆,竟然用的是array_unique(),从分析到给出的demo一直在解决如何删除“一个”数组中“重复”的元素 。汗!答非所问的答案竟然会被采纳 。
这里,简单分析一下提问者的真实意图 , 分以下2种情况:
1.现在有2个一维数组, $arr1和$arr2,现在要删除 $arr1 中存在于 $arr2 的元素 。
解决方案:使用array_diff对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值,代码如下:
?php
$arr1 = array(1, 2, 3, 4);
$arr2 = array(2, 4);
//这一句即可
$arr1 = array_diff($arr1,$arr2);
var_dump($arr1);
2.先声明一下 , 我看了lt318025大神给出的答案,他的思维非常活跃,已经分了2种情况 。
现在有2个一维数组,$a和$b,即删除$a中存在于$b的元素,删除$b中$a存在的元素,组后合并返回 。
可是lt318025大神用的PHP版本太高,给出的demo在低版本PHP下运行失败 , 这里修正一下:
?php
$a=array(1,2,3);
$b=array(2,3,4);
//得到存在于$a但不存在于$b中的元素组成的数组
$c=array_diff($a,$b);
//这里简单求出在$a但不在$b中的元素
var_dump($c);
//得到存在于$a但不存在于$b中的元素组成的数组与存在于$b但不存在于$a中的元素组成的数组的并集
$d=array_merge(array_diff($a,$b),array_diff($b,$a));
//这里彻底剔除了同时存在于$a和$b中的元素
var_dump($d);
究竟是哪一种情况,这需要看提问者的需求了 。
php 去掉完全相同的重复数组一、这个没有被合并php数据合并去掉重复,只是取的后面这个键名的值php数据合并去掉重复,
二、$input=array("11"="aaaa","22"="bbbb","33"="cccc","11"="aaada","44"="cccc1","55"="cccc");
$result
=
array_unique
($input);
print_r($result);
输出的结果php数据合并去掉重复:Array
(
[11]
=
aaada
[22]
=
bbbb
[33]
=
cccc
[44]
=
cccc1
)
键名33

55
的值完全一样的时候php数据合并去掉重复,后者会被干掉
如果你要的是键名和值完全一致的时候才删除一个的话,似乎不能,因为键名是不允许重复的
听你的情况似乎数据量很大,建议你使用
array_flip()函数
【php中,删除数组中重复元素有一个可用的函数,那就是array_unique(),
但是它并不是一个最高效的方法,使用array_flip()函数将比array_uniqure()在速度上高出五倍左右 。】
例子:$input=array("11"="aaaa","22"="bbbb","33"="cccc","11"="aaada","44"="cccc1","55"="cccc");
$arr1
=
array_flip(array_flip($input));
print_r($arr1);
输出的结果:Array
(
[11]
=
aaada
[22]
=
bbbb
[55]
=
cccc
[44]
=
cccc1
)
【php】合并多个数组并去掉相同的你是要把$tpid数组的内容合并吗,可以先弄了一个空数组,for里面归并到这个空数组,for结束之后进行唯一处理 , 大致逻辑如下:
?php
$result=Array();
for($i=0;$i$num;$i++){
$tpid=$data[$i]['busitype'];
$tpid=explode(".",$tpid,-1);
print_r($tpid);
echo "br";
$result=array_merge($result,$tpid);
}
$result=array_unique($result);
?
补充:
那是array_merge的问题 , 重复的下标会被合并,你试试看使用array_merge_recursive吧,我无法测试程序,没有你的数据 。
php如何删除数据库中重复的数据 并显示整理后的数据php页面上放一个删除数据库重复数据的功能按钮 , 就是使用PHP操作数据库删除重复数据的SQL语句,然后重新查询绑定输出 。

推荐阅读