我想查看数组是否多次具有相同的值,例如:
$array=array('val1','val2','val3','val1');
如您所见,在上面的数组中,有2 x val1。 要搜索数组是否包含值,我可以使用in_array:
$search=in_array('val1',$array);
它将返回true,因为val1存在于数组中,但如果多次找到该值,我需要返回true。
答案 0 :(得分:7)
您可以利用array_keys()
的鲜为人知的特性,该特征用于将数组的键作为新数组返回(即没有值。)
它接受一个可选的第二个参数search
,它允许您规定您希望只返回其值与您的搜索相对应的那些键。所以:
$arr = array('one', 'two', 'one', 'three');
$indexes = array_keys($arr, 'one'); //array(0, 2)
答案 1 :(得分:2)
通过将search_value作为第二个参数提供给array_keys。该函数将仅返回包含值的数组的键。
$array=array('val1','val2','val3','val1');
$search = array_keys($array, 'val1');
供参考, Please READ
答案 2 :(得分:2)
尝试
<?php
$array = array('val1','val2','val3','val1');
$cnt = array_count_values($array);
echo $cnt['val1'];
答案 3 :(得分:1)
这个功能可以解决问题:
function check_multi($testVal,$arr) {
foreach($arr as $curVal) {
$counts[$curVal]++;
}
if(isset($counts[$val])
return $counts[$val];
else
return null
}
答案 4 :(得分:1)