检查数组包含重复值的有效方法是什么?我有一个包含电子邮件的数组。我想知道是否有重复的邮箱id。
更新:我对重复值不感兴趣。我想知道是"It contains duplicate value"还是"It doesn't contain duplicate value"
试试这个:
if (count(array_unique($arr)) == count($arr))
echo "Array does not contain duplicate elements";
else
echo "Array contains duplicate elements";
一种简单有效的方法是使数组唯一,然后将其与原始数组进行比较,看看是否有任何元素被删除:
count(array_unique($emails)) == count($emails)
如果有人想要不区分大小写的数组唯一值,请尝试
function array_iunique($array) {
return array_intersect_key($array,array_unique(
array_map('strtolower',$array) ) );
}
$array[1] = "test@google.com";
$array[2] = "test@hotmail.com";
$array[3] = "TEST@google.com";
$array[4] = "Test@hotmail.com";
//print_r(array_unique($array));
print_r(array_iunique($array));
//result Array ([1] => test@google.com [2] => test@hotmail.com)
如何从数组中提取重复值
<?php
function array_not_unique( $a = array() )
{
return array_diff_key( $a , array_unique( $a ) );
}
?>
返回重复条目。这是最简单有效的方法。
当你编辑你的帖子时,最有效的方法是知道它是否重复,这是大多数人建议的方法。
计数(array_unique(数组)美元)= = count($数组)
您应该使用array_count_values()
方法来查找元素的出现次数。这是一种简单有效的方法。
$array = array('a', 'o', 'p', 'b', 'a', 'p', 'k', 'k', 'k');
print_r(array_count_values($array));
输出Array
(
[a] => 2
[o] => 1
[p] => 2
etc...
)