Php 1个数组,包含2个或更多相等元素
关于比较两个具有相同值的数组或检查数组中是否存在值,有很多问题,但我在任何地方都找不到这个问题: 如何检查某个变量/值在一个数组中是否存在两次或两次以上 例如: 如果有一个可以调用的函数,我可以插入要检查的变量和要检查的数组作为参数,如果变量值在数组中存在两次以上,则返回true,这也会很好 例如:Php 1个数组,包含2个或更多相等元素,php,html,Php,Html,关于比较两个具有相同值的数组或检查数组中是否存在值,有很多问题,但我在任何地方都找不到这个问题: 如何检查某个变量/值在一个数组中是否存在两次或两次以上 例如: 如果有一个可以调用的函数,我可以插入要检查的变量和要检查的数组作为参数,如果变量值在数组中存在两次以上,则返回true,这也会很好 例如: 非常感谢你。任何帮助都将不胜感激:)阵列键功能具有搜索功能 你所要做的就是计算结果的数量 count(array_keys($array_to_check, $this_value)); 使用ph
非常感谢你。任何帮助都将不胜感激:)阵列键功能具有搜索功能 你所要做的就是计算结果的数量
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));
}
具有“折叠”重复值的方便效果,但无需检查它是否与所有其他值相等。与数组的保存、访问等方式有关。但是请注意,这仅适用于字符串和/或数字数组,而不适用于嵌套数组或任何更复杂的数组
性能统计:
:2.38407087326秒内迭代1000000次array_unique
:在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;
}