Ⅰ 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);
?>