php 获取数组中重复数据

来源:岁月联盟 编辑:exp 时间:2012-09-29

两天前,需要用到找出php数组中的重复数据,总结了两种方法,在这里跟大家共享一下,求关注啊
(1)利用php提供的函数,array_unique和array_diff_assoc来实现
[php] 
<?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 ); 
 
?> 

(2)自己写函数实现这个功能,利用两次for循环
[php] 
<?php 
function FetchRepeatMemberInArray($array) { 
    $len = count ( $array ); 
    for($i = 0; $i < $len; $i ++) { 
        for($j = $i + 1; $j < $len; $j ++) { 
            if ($array [$i] == $array [$j]) { 
                $repeat_arr [] = $array [$i]; 
                break; 
            } 
        } 
    } 
    return $repeat_arr; 

 
// 测试用例 
$array = array ( 
        'apple', 
        'iphone', 
        'miui', 
        'apple', 
        'orange', 
        'orange'  
); 
$repeat_arr = FetchRepeatMemberInArray ( $array ); 
print_r ( $repeat_arr ); 
 
?>