Php 1个数组,包含2个或更多相等元素

Php 1个数组,包含2个或更多相等元素,php,html,Php,Html,关于比较两个具有相同值的数组或检查数组中是否存在值,有很多问题,但我在任何地方都找不到这个问题: 如何检查某个变量/值在一个数组中是否存在两次或两次以上 例如: 如果有一个可以调用的函数,我可以插入要检查的变量和要检查的数组作为参数,如果变量值在数组中存在两次以上,则返回true,这也会很好 例如: 非常感谢你。任何帮助都将不胜感激:)阵列键功能具有搜索功能 你所要做的就是计算结果的数量 count(array_keys($array_to_check, $this_value)); 使用ph

关于比较两个具有相同值的数组或检查数组中是否存在值,有很多问题,但我在任何地方都找不到这个问题:

如何检查某个变量/值在一个数组中是否存在两次或两次以上

例如:

如果有一个可以调用的函数,我可以插入要检查的变量和要检查的数组作为参数,如果变量值在数组中存在两次以上,则返回true,这也会很好

例如:


非常感谢你。任何帮助都将不胜感激:)

阵列键功能具有搜索功能

你所要做的就是计算结果的数量

count(array_keys($array_to_check, $this_value));

使用php函数
array\u keys
。以获得所需的输出

$array_to_check = array( "this", "this" , "yes" , "no" , "maybe" , "yes" , "yes" );

$this_value = "this";

if (count(array_keys($array_to_check, $this_value)) > 2) {

     echo "Yes";
}

借鉴@pvnarula的答案,但性能有所提高:

function array_has_dupes($array) {
    return count($array) !== count(array_flip($array));
}
具有“折叠”重复值的方便效果,但无需检查它是否与所有其他值相等。与数组的保存、访问等方式有关。但是请注意,这仅适用于字符串和/或数字数组,而不适用于嵌套数组或任何更复杂的数组

性能统计:

  • array_unique
    :2.38407087326秒内迭代1000000次
  • 数组翻转
    :在1.63431406021s中进行1000000次迭代

编辑:在重新阅读了这个问题后,我意识到这并不是人们所要求的!不过,知道它仍然很有用,所以我将把它放在那里

至于实际回答问题,计算返回的数组并检查它是否至少有2项是最好的选择:

function array_has_dupes($array,$value) {
    return count(array_keys($array,$value)) > 1;
}

我认为应该是
功能检查,如果两个以上的
(没有
$
)实际上应该超过2,根据question@Ziarno“两次或更多”翻译为
=2
>1
(由于我们在ℕ∪{0})
$array_to_check = array( "this", "this" , "yes" , "no" , "maybe" , "yes" , "yes" );

$this_value = "this";

if (count(array_keys($array_to_check, $this_value)) > 2) {

     echo "Yes";
}
function array_has_dupes($array) {
    return count($array) !== count(array_flip($array));
}
function array_has_dupes($array,$value) {
    return count(array_keys($array,$value)) > 1;
}