PHP检查数组值是否唯一

PHP检查数组值是否唯一,php,arrays,unique,Php,Arrays,Unique,今天早些时候我正在做一件事,我偶然发现了这个问题。如何检查某个数组值在该数组中是否唯一 $array = array(1, 2, 3, 3, 4, 5); if(unique_in_array($array, 1)) //true if(unique_in_array($array, 3)) //false 我一直在考虑使用or,但这两种方法对于查找重复项都不是很有用。我相信我可以编写这样的函数来实现: function unique_in_array($arr, $search){

今天早些时候我正在做一件事,我偶然发现了这个问题。如何检查某个数组值在该数组中是否唯一

$array = array(1, 2, 3, 3, 4, 5);

if(unique_in_array($array, 1)) //true
if(unique_in_array($array, 3)) //false
我一直在考虑使用or,但这两种方法对于查找重复项都不是很有用。我相信我可以编写这样的函数来实现:

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_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
}
有关参考,请参阅:

试试这个:

if (1 === count(array_keys($values, $value))) {
    // $value is unique in array
}
有关参考,请参阅:

你可以这样试试-

下面是的函数引用

你可以这样试试-


这是

的函数参考,我找到它是为了检查数组是否有重复的值

$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
}

我发现这是为了检查数组是否有重复的值

$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
}

令人惊叹的这实际上是迄今为止最优雅的解决方案!谢谢我会再等几分钟,但我认为这是目前为止最好的解决方案。如果没有更好的东西出现,我会接受你的回答:太棒了!这实际上是迄今为止最优雅的解决方案!谢谢我会再等几分钟,但我认为这是目前为止最好的解决方案。如果没有更好的消息出现,我会接受你的回答:这不是很有帮助。您正在检查数组是否有重复项。问题是检查某个值是否唯一。啊!对我正在更新我的答案@是的,这也是我的问题。我知道这是可行的,但我一直在寻找像localheinz提供的更优雅的解决方案。不过我会给你一个+1的efford。谢谢你的尝试:啊!谢谢大家!+1@ICeCub但在这个解决方案中,如果echo==1,则该平均值在数组中是唯一的@这不是很有帮助。您正在检查数组是否有重复项。问题是检查某个值是否唯一。啊!对我正在更新我的答案@是的,这也是我的问题。我知道这是可行的,但我一直在寻找像localheinz提供的更优雅的解决方案。不过我会给你一个+1的efford。谢谢你的尝试:啊!谢谢大家!+1@ICeCub但在这个解决方案中,如果echo==1,则该平均值在数组中是唯一的@欢迎来到StackOverflow。虽然这段代码可能会解决这个问题,包括如何以及为什么解决这个问题的解释将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案,添加解释,并说明适用的限制和假设。看看这里→ 谢谢你的尝试,但请把问题再读一遍。问题是数组中的特定值是否唯一。如果整个数组具有唯一值,则不会。因此,在像[0,0,1,2,2]这样的数组中,它应该为签出1返回true,为所有其他数组返回false@费德里科巴:这个问题已经有3/4年的历史了,很久以前就有了答案。老实说我都不记得问过了欢迎来到StackOverflow。虽然这段代码可能会解决这个问题,包括如何以及为什么解决这个问题的解释将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案,添加解释,并说明适用的限制和假设。看看这里→ 谢谢你的尝试,但请把问题再读一遍。问题是数组中的特定值是否唯一。如果整个数组具有唯一值,则不会。因此,在像[0,0,1,2,2]这样的数组中,它应该为签出1返回true,为所有其他数组返回false@费德里科巴:这个问题已经有3/4年的历史了,很久以前就有了答案。老实说,我甚至不记得问过这个问题。