php數組重復
A. php 如何去除多維數組指定重復出現的值
array_unique
()
函數用於移除數組中重復的值。如果兩個或更多個數組值相同,只保留第一個值,其他的值被移除。
注意:被保留的數組將保持第一個數組項的鍵名類型
B. php獲取數組中重復數據的兩種方法
( )利用php提供的函數 array_unique和array_diff_assoc來實現
復制代碼 代碼如下: <?php function FetchRepeatMemberInArray($array) { // 獲取去掉重復數據的數組 $unique_arr = array_unique ( $array ); // 獲取重復數據的數組橋慎拆 $repeat_arr = array_diff_assoc ( $array $unique_arr ); return $repeat_arr; } // 測試孝亂用例 $array = array ( apple iphone miui apple orange orange ); $repeat_arr = FetchRepeatMemberInArray ( $array ); print_r ( $repeat_arr ); ?>( )自己寫函數實現這個敏棗功能 利用兩次for循環
復制代碼 代碼如下: lishixin/Article/program/PHP/201311/20965
C. 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
)
D. php編程: 怎樣計算某一值在數組中重復出現的次數
使用array_count_values函數可以找出數組中相同值出現的次數,array_count_values用法如下:
array_count_values
—
統計數組中所有的值出現的次數
array
array_count_values
(
array
$input)
array_count_values()
返回一個數組,該數組用
input
數組中的值作為鍵名,該值在:input
數組中出現的次數作為值
input:統計這個數組的值
返回值:
返回一個關聯數組,用
input數組中的值作為鍵名,該值在數組中出現的次數作為值。
示例:
?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?
以上常式會輸出:
Array
(
[1] => 2
[hello] => 2
[world] => 1
)需要取出哪個值的次數,就在返回的數組中獲取對應的key值即可,例如示例中array_count_values($array)['hello']就可以取出數組中hello的個數。
E. PHP二維數組如何實現去除重復項
PHP數組去除重復項有個內置函數array_unique(),但是php的array_unique函數只適用於一維數組,對多維數組並不適用,不過你可以在二維數組中的值,用array_unique()即可。
比如:
$array = array(array(1,1,2),array(2,3,4,3));
$temp_array = array();
foreach($array as $key=>$value){
$temp_array[$key] = array_unique($value);
}
$array = $temp_array;
F. PHP獲取數組中重復的元素實例教程
獲取一個數組中重復的元素 代碼如下:
a 方法一:
代碼如下function array_repeat($arr) { if(!is_array($arr)) return $arr; $arr = array_count_values($arr); $newArr = array(); foreach($arr as $k=>$v) { if($v> ) array_push($newArr $k); } return $newArr; }
b 方法二:
代碼如下function array_repeat($arr) { if(!is_array($arr)) return $arr; $arr = array_unique($arr); $arr = array_diff_key($arr $arr ); return array_unique($arr ); }
測試方法
代碼如下$arr = array( apple blue red banana pear apple blue color color ); print_r(array_repeat($arr));
結果: Array ( [ ] => apple [ ] => blue [ ] => color )
後來代一些刪除數組重復元素的方法
array_keys函數來刪除數組重復元素
*/
代碼如下$a=array("red" "green" "blue" "yellow"); count($a); //得到 unset($a[ ]); //刪除第二個元素 count($a); //得到 echo $a[ ]; //數組中僅有三個元素 本想得到最後一個元素 但卻得到blue echo $a[ ]; //無值
//array array_splice (array input int offset [ int length [ array replacement]]) //array_splice()其實是替換數組元素的函數 但如果不加替換值就簡單的刪除元素 下面是array_splice()的用法: $b=array("red" "green" "blue" "yellow"); array_splice($a );
//下面看一個比較全面的刪除重復值並且刪除指定的數組元素
代碼如下$array = array( => " it net" => "菠蘿" => " it net" => "香蕉" => "芭樂" => " it net" => " it net");
$search_keys = array_keys($array " it net");
foreach($search_keys as $key) { unset($array [$key]); }
print_r($array );
/* 得到結果 array ( [ ] => 菠蘿 [ ] => 芭樂 [ ] => 香蕉 ) */
lishixin/Article/program/PHP/201311/20922
G. php數組去除重復的值
之前寫了一篇關於數組去重的文章,但是僅限於一維數組。下面的函數可以用於二維數組:
//二維數組去掉重復值
function array_unique_fb($array2D){foreach ($array2D as $v){$v = join(",",$v); //降維,也可以用implode,將一維數組轉換為用逗號連接的字元串
$temp[] = $v;}
$temp = array_unique($temp); //去掉重復的字元串,也就是重復的一維數組
foreach ($temp as $k => $v){$temp[$k] = explode(",",$v); //再將拆開的數組重新組裝}return $temp;}
如果你想保留數組的鍵值,可以用下面的函數:
//二維數組去掉重復值 並保留鍵值
function array_unique_fb($array2D){foreach ($array2D as $k=>$v){$v = join(",",$v); //降維,也可以用implode,將一維數組轉換為用逗號連接的字元串
$temp[$k] = $v;}$temp = array_unique($temp); //去掉重復的字元串,也就是重復的一維數組
foreach ($temp as $k => $v){$array=explode(",",$v); //再將拆開的數組重新組裝
$temp2[$k]["id"] =$array[0];
$temp2[$k]["litpic"] =$array[1];
$temp2[$k]["title"] =$array[2];
$temp2[$k]["address"] =$array[3];
$temp2[$k]["starttime"] =$array[4];
$temp2[$k]["endtime"] =$array[5];
$temp2[$k]["classid"] =$array[6];
大概就這樣啦。
以上回答你滿意么?
H. php判斷數組重復,並把重復的數據相加
遍歷一次就搞定了
既然你要把單號相同的加起來,就可以認為單號是唯一的,所以單號可以做key
$sourceArr=array();//這里就是你原始數據的數組
$newArr=array();//這里是相加後處理過的數組,以單號為key
foreach($sourceArras$v){
if(array_key_exists($v['id'],$newArr)){
$newArr[$v['id']]['fund']+=$v['fund'];
}else{
$newArr[$v['id']]=$v;
}
}
大概就是這么個意思,不過交易類型、賬務類型你可能還要再處理下。
如果最後想得到一個下標從0開始的,非關聯數組,再用array_values()函數處理下就OK了