1.擷取一個數組中重複的元素。代碼如下:
a.方法一:
| 代碼如下 |
複製代碼 |
function array_repeat($arr) { if(!is_array($arr)) return $arr; $arr1 = array_count_values($arr); $newArr = array(); foreach($arr1 as $k=>$v) { if($v>1) array_push($newArr,$k); } return $newArr; } |
b.方法二:
| 代碼如下 |
複製代碼 |
function array_repeat($arr) { if(!is_array($arr)) return $arr; $arr1 = array_unique($arr); $arr3 = array_diff_key($arr,$arr1); return array_unique($arr3); } |
測試方法
| 代碼如下 |
複製代碼 |
$arr = array('apple','blue','red','banana','pear','apple','blue','color','color'); print_r(array_repeat($arr)); 結果: Array ( [5] => apple [6] => blue [8] => color ) |
後來代一些刪除數組重複元素的方法
array_keys函數來刪除數組重複元素。
*/
| 代碼如下 |
複製代碼 |
$a=array("red", "green", "blue", "yellow"); count($a); //得到4 unset($a[1]); //刪除第二個元素 count($a); //得到3 echo $a[2]; //數組中僅有三個元素,本想得到最後一個元素,但卻得到blue, echo $a[1]; //無值 //array array_splice (array input, int offset [, int length [, array replacement]]) //array_splice()其實是替換數組元素的函數,但如果不加替換值就簡單的刪除元素.下面是array_splice()的用法: $b=array("red", "green", "blue", "yellow"); array_splice($a,1,1); |
//下面看一個比較全面的重複資料刪除值並且刪除指定的數組元素
| 代碼如下 |
複製代碼 |
$array1 = array(1 => "www.111cn.net", 2 => "菠蘿", 4 => "www.111cn.net",3 => "香蕉",4 => "芭樂",5 => "www.111cn.net",6 => "www.111cn.net"); $search_keys = array_keys($array1, "www.111cn.net"); foreach($search_keys as $key) { unset($array1[$key]); } print_r($array1); /* 得到結果 array ( [2] => 菠蘿 [4] => 芭樂 [3] => 香蕉 ) */ //刪除數組中重複元素的函數 function delmember(&$array, $id) { $size = count($array); for($i = 0; $i <$size - $id - 1; $i ++) { $array[$id + $i] = $array[$id + $i + 1]; } unset($array[$size - 1]); } |