Ⅰ php数组的重复值如何过滤掉
array_unique() 函数移除数组中的重复的值,并返回结果数组。
当几个数组元素回的值相等时,只保答留第一个元素,其他的元素被删除。
返回的数组中键名不变。
array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
Ⅱ 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_mp($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_mp($c);
//得到存在于$a但不存在于$b中的元素组成的数组与存在于$b但不存在于$a中的元素组成的数组的并集
$d=array_merge(array_diff($a,$b),array_diff($b,$a));
//这里彻底剔除了同时存在于$a和$b中的元素
var_mp($d);
究竟是哪一种情况,这需要看提问者的需求了。
Ⅲ php 两个数组做比较的问题
PHP array_diff() 函数
PHP Array 函数
实例
比较两个数组的键值,并返回差集:
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
?>
注意返回值是差集数组
网络一专下问题就会找属到答案,或者收藏这个网址很有用:http://www.w3school.com.cn
希望帮到你
Ⅳ php如何过滤数组重复值啊
|先用explode()函数分解成数组,然后用array_unique() 函数给数组去重复,然后用implode()合并成字版符串
<?php
$str='1|权2|1|5|4|2';
$a=explode('|',$str);
$b=array_unique($a);
$c=implode('|',$b);
var_mp($c);
?>
Ⅳ 怎么样才能过滤相同数组php
//考虑到你指定的键值不一定是连续的相同的,中间可以有间断,所以程序如下
//1,2,5同,3,4同
$a=array(
array(
'confuguarable_sku'=>'0572911',
'sku'=>4561,
'conseille'=>'No'),
array(
'confuguarable_sku'=>'0572911',
'sku'=>4561,
'conseille'=>'No'),
array(
'confuguarable_sku'=>'0572912',
'sku'=>4561,
'conseille'=>'No'),
array(
'confuguarable_sku'=>'0572912',
'sku'=>4561,
'conseille'=>'No'),
array(
'confuguarable_sku'=>'0572911',
'sku'=>4561,
'conseille'=>'No'),
);
print_r($a);
$b=array();
foreach($aas$key=>$value){
$temp[$key]=$value['confuguarable_sku'];
}
print_r($temp);
print_r($temp=array_unique($temp));
foreach($tempas$key=>$value){
$res[$key]=$a[$key];
}
//显示结果
print_r($res);
Ⅵ php 一个多维数组根据一维数组筛选数据,得到新数组
<?php
//定义数组1
$arr1=array(
'BL001'=>array(
'0'=>'A14257',
'1'=>'B17548'
),
'CDF002'=>array(
'0'=>'A14257',
'1'=>'C48751'
),
'FGE453'=>array(
'0'=>'DF5533',
'1'=>'GR6445',
'2'=>'GH5544'
),
'GEN001'=>array(
'0'=>'NT7532',
'1'=>'DE9342',
'2'=>'C48751'
)
);
//定义数组2
$arr2=array(
'A14257',
'E453T4',
'Y64344',
'FG4809',
'C48751',
'H4443R'
);
//定义结果数组$result
$result=array();
foreach($arr1as$k=>$v)//遍历数组1
foreach($vas$s)//遍历数组1第2维
if(in_array($s,$arr2)){//包含数据2的任意值
if(!isset($result[$k])||!is_array($result[$k]))
$result[$k]=array();
$result[$k][]=$s;//添加到结果数组
}
//输出测试结果
print_r($result);
/*
Array
(
[BL001]=>Array
(
[0]=>A14257
)
[CDF002]=>Array
(
[0]=>A14257
[1]=>C48751
)
[GEN001]=>Array
(
[0]=>C48751
)
)
*/
Ⅶ php 二维数组过滤相同的值
$tmp=array();
$s=array();//你的数组
foreach($sas$k=>$v){
if(in_array($v['name'],$tmp)){
unset($s[$k]);
}
$tmp[]=$v['name'];
}
var_mp($s);
Ⅷ php中过滤数组中的某个值
<?php
$bb=array('a');
$aa=array('a','b','c','d','e','f');
$cc=array_diff($aa,$bb);
print_r($cc);
?>
array_diff 返回来2个数组自的差集,数组元素多的放前面
Ⅸ php array_filter如何多增加一个过滤条件
if(!stristr($a,"-") && !stristr($a,"."))
加多个判断条件不就行了吗
Ⅹ php,请问对已知二维数组,根据某个字段添加条件筛选怎么做
第一个方来法:新建一自个空的数组,再循环该数组,如果distance<10000,就压入新建的数组中。
第二个方法:使用array_filter()方法,
<?php
$array=array(
array('id'=>1,'distance'=>131),
array('id'=>2,'distance'=>13100),
array('id'=>3,'distance'=>13231),
);
functionfilterDistance($arr)
{
return($arr['distance']<10000);
}
$array=array_filter($array,"filterDistance");
var_mp($array);
?>