📜  php 在不使用内置函数的情况下获取数组中的重复键 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:37.109000             🧑  作者: Mango

PHP 在不使用内置函数的情况下获取数组中的重复键

在PHP中,要获取数组中的重复键可以使用内置函数array_count_values()array_unique()来实现。但是,如果没有使用内置函数的情况下该怎么实现呢?本文将介绍如何在不使用内置函数的情况下获取数组中的重复键。

方法一
<?php
// 定义一个测试数组
$arr = array('a', 'b', 'c', 'a', 'd', 'c');

// 定义一个空数组,用于存放重复的键
$dup_arr = array();

// 遍历数组,统计每个元素出现的次数
foreach($arr as $val){
    // 如果元素在$dup_arr数组中已存在,则为重复键
    if(in_array($val, $dup_arr)){
        echo 'Duplicate key: '.$val.PHP_EOL;
    }
    // 否则将元素添加到$dup_arr数组中
    else{
        array_push($dup_arr, $val);
    }
}
?>

上面的代码中,我们定义了一个测试数组$arr,然后定义了一个空数组$dup_arr,用于存放重复的键。接着,我们使用一个foreach循环,遍历数组$arr,统计每个元素出现的次数。如果元素在$dup_arr数组中已存在,则为重复键;否则将元素添加到$dup_arr数组中。

方法二
<?php
// 定义一个测试数组
$arr = array('a', 'b', 'c', 'a', 'd', 'c');

// 遍历数组,统计每个元素出现的次数
foreach($arr as $key => $val){
    // 获取$val在数组中的所有键
    $keys = array_keys($arr, $val);
    // 如果$keys数组的长度大于1,则为重复键
    if(count($keys) > 1 && !in_array($key, $keys)){
        echo 'Duplicate key: '.$key.PHP_EOL;
    }
}
?>

上面的代码中,我们定义了一个测试数组$arr。接着,我们使用一个foreach循环,遍历数组$arr,统计每个元素出现的次数。使用array_keys()函数获取$val在数组中的所有键,如果$keys数组的长度大于1且$key不在$keys数组中,那么$key就是重复键。