PHP输出数组中重名的元素的几种处理方法

当一个数组中包含有重复的元素时,我们需要对重复元素进行处理并输出。下列是几种处理重复元素的方法:

PHP输出数组中重名的元素的几种处理方法

当一个数组中包含有重复的元素时,我们需要对重复元素进行处理并输出。下列是几种处理重复元素的方法:

方法一:循环遍历数组去除重复元素

在这个方法中,我们在遍历整个数组结束后得到新的数组,新的数组中不包含任何重复元素。

    $arr = array(1, 2, 3, 1, 2, 4); 
    $newArr = array();
    foreach ($arr as $val) {
        if (!in_array($val, $newArr)) {
            $newArr[] = $val;
        }
    }
    print_r($newArr); // 输出结果为: Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 ) 

方法二:使用array_unique()函数去除重复元素

我们可以使用array_unique()函数,将数组中的重复元素去除。

    $arr = array(1, 2, 3, 1, 2, 4);
    $newArr = array_unique($arr);
    print_r($newArr); // 输出结果为:Array ( [0] => 1 [1] => 2 [2] => 3 [5] => 4 )

方法三:使用array_count_values()函数统计元素出现次数

我们可以使用array_count_values()函数来统计数组中每个元素出现的次数,然后根据次数来输出重复元素。

    $arr = array(1, 2, 3, 1, 2, 4);
    $countArr = array_count_values($arr);
    foreach ($countArr as $key => $val) {
        if ($val > 1) {
            echo $key . ' 重复了 ' . $val . ' 次。<br/>';
        }
    }
    // 输出结果为: 1 重复了 2 次。 2 重复了 2 次。

方法四:使用array_keys()和array_diff()函数输出重复元素

该方法使用array_keys()函数得到数组中重复元素的键名,再使用array_diff()函数输出这些重复的元素。

    $arr = array(1, 2, 3, 1, 2, 4);
    $repeatKeys = array_keys(array_count_values($arr),2);
    $repeatArr = array_diff($arr, array_unique($arr));
    print_r($repeatArr); // 输出结果为: Array ( [0] => 1 [1] => 2 )

在上述代码中,$repeatKeys中存储了在数组$arr中出现次数为2的元素的键名数组,$repeatArr中存储了重复的元素。

通过以上几种处理方法,便可方便地输出数组中的重复元素。

本文标题为:PHP输出数组中重名的元素的几种处理方法

基础教程推荐