【发布时间】:2017-07-17 03:03:02
【问题描述】:
我今天早些时候正在做一些事情,我偶然发现了这个问题。如何检查某个数组值在该数组中是否唯一?
$array = array(1, 2, 3, 3, 4, 5);
if(unique_in_array($array, 1)) //true
if(unique_in_array($array, 3)) //false
我一直在考虑使用array_search() 或in_array(),但它们对于查找重复项都不是很有用。我确信我可以编写这样的函数来做到这一点:
function unique_in_array($arr, $search){
$found = 0;
foreach($arr as $val){
if($search == $val){
$found++;
}
}
if($found > 1){
return true;
} else {
return false;
}
}
或者另一种解决方案是像这样使用array_count_values():
$array_val_count = array_count_values($array);
if($array_val_count[$search] > 1){
return true;
} else {
return false;
}
但我觉得 PHP 没有内置函数(或至少是更好的方法)来执行此操作似乎很奇怪?
【问题讨论】: