我在我的代码中有这个来获取数组的频率.
$arr = array(10, 9, 23, 7, 40, 43, 7, 5, 10, 7);
$frq = array_count_values($arr);
foreach($frq as $key => $values){ print $key . " = " . $values . "<br>";}
Run Code Online (Sandbox Code Playgroud)
输出:
5 = 1
7 = 3
9 = 1
10 = 2
23 = 1
40 = 1
43 = 1
Run Code Online (Sandbox Code Playgroud)
现在有没有办法for只使用循环来解决这个问题- 即不使用array_count_values()函数?谢谢.
你可以尝试这个 -
$arr = array(10, 9, 23, 7, 40, 43, 7, 5, 10, 7);
$frq= array();
foreach($arr as $a) {
if(array_key_exists($a, $frq)) {
$frq[$a] += 1;
}
else
{
$frq[$a] = 1;
}
}
foreach($frq as $key => $values){
print $key . " = " . $values . "<br>";
}
Run Code Online (Sandbox Code Playgroud)
没有任何功能 -
foreach($arr as $a) {
$frq[$a] = (!empty($frq[$a])) ? ($frq[$a] + 1) : 1;
}
Run Code Online (Sandbox Code Playgroud)