我有一个名为$uid的数组。如何检查我的$uid数组中值为"12"的元素出现了多少次?
有几种方法。
$cnt = count(array_filter($uid,function($a) {return $a==12;}));
或者$tmp = array_count_values($uid);
$cnt = $tmp[12];
或任何其他方法。
可以使用 array_count_values()
函数。例如,
$freqs = array_count_values($uid);
$freq_12 = $freqs['12'];
[]
符号。 - Hammeritearray_count_values()
不可靠,因为只有找到的值才会成为键。 - mickmackusa$uid= array(12,23,12,4,2,5,56);
$indexes = array_keys($uid, 12); //array(0, 1)
echo count($indexes);
$count = count(array_filter($uid, function($x) { return $x==12;}));
或者
array_reduce($uid, function($c, $v) { return $v + ($c == 12?1:0);},0)
或者只是一个for循环
for($i=0, $last=count($uid), $count=0; $i<$last;$i++)
if ($uid[$i]==12) $count++;
$count=0;
foreach($uid as $current)
if ($current==12) $count++;
$uid_counts = array_count_values($uid);
$number_of_12s = $uid_counts[12];
array_count_values()
不可靠,因为只有找到的值才会成为键。 - mickmackusa$repeated = array();
foreach($uid as $id){
if (!isset($repeated[$id])) $repeated[$id] = -1;
$repeated[$id]++;
}
这将导致例如
array(
12 => 2
14 => 1
)
array_count_values()
不可靠,因为只有找到的值才会成为键。 - mickmackusa$tmp[9999] ?? 0
(如果找不到9999)就可以了,这样就没问题了。我不知道为什么你会回复每个人说它不可靠,只是因为键不存在。 - C Alex