📅  最后修改于: 2023-12-03 15:33:37.109000             🧑  作者: Mango
在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
就是重复键。