[英]PHP check if array value is unique
我今天早些时候正在做一些事情,我偶然发现了这个问题。 如何检查某个数组值在该数组中是否唯一?
$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 没有内置函数(或至少是更好的方法)来执行此操作似乎很奇怪?
试试这个:
if (1 === count(array_keys($values, $value))) {
// $value is unique in array
}
供参考,请参阅:
你可以这样试试——
$array1 = array(1, 2, 3, 3, 4, 3, 3, 5);
$func = array_count_values($array1);
$count = $func[3]; #Pass value here
echo $count; #this will echo 4
#If you pass undefined value, You should use like as below
$count = isset($func[8])? $func[8] : 0;
echo $count; #this will echo 0, Because 8 is absent in $array1
这是array_count_values()的函数参考
我发现这个可以检查数组是否有重复值
$array = array(1, 2, 3, 3, 4, 5);
if(count(array_unique($array)) != count($array)){
// Return true Array is unique
}
else{
// Return false Array is not unique
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.