php删除数组重复的数据 php数组删除指定的value

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 去掉完全相同的重复数组一、这个没有被合并,只是取的后面这个键名的值,
二、$input=array("11"="aaaa","22"="bbbb","33"="cccc","11"="aaada","44"="cccc1","55"="cccc");
$result
=
array_unique
($input);
print_r($result);
输出的结果:Array
(
[11]
=
aaada
[22]
=
bbbb
[33]
=
cccc
[44]
=
cccc1
)
键名33

55
的值完全一样的时候 , 后者会被干掉
如果你要的是键名和值完全一致的时候才删除一个的话,似乎不能 , 因为键名是不允许重复的
听你的情况似乎数据量很大,建议你使用
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数组去除重复的值?php
$array = array(
array(
'id' = 19,
'title' = '总统套房'
),
array(
'id' = 20,
【php删除数组重复的数据 php数组删除指定的value】'title' = '豪华套房'
),
array(
'id' = 21,
'title' = '豪华套房'
),
array(
'id' = 22,
'title' = '总统套房'
),
);
foreach ($array as $key = $value) {
foreach ($value as $k = $v) {
if ($k == 'title') {
$new_arr[] = $v;
}
}
}
$arr = array_unique($new_arr);
echo implode(',', $arr);
?
望采纳 Thx
如何正确实现PHP删除数组重复元素array_unique

推荐阅读