出于某种原因,这将导致意外;在第4行。我无法弄清楚为什么这不起作用。如果我删除;它会在第5行产生意外的T_VARIABLE。
<?php
findMostFreq($arr)
{
$y = arsort($arr);
$freq = array();
foreach($y as $v)
{
if((array_key_exists($v, $freq))
$freq[$v]++;
else
$freq[$v] = 1;
}
}
}
?>
答案 0 :(得分:1)
您的arsort实现错误,但您也遇到了一些语法错误。
arsort:
成功时返回 TRUE ,失败时返回 FALSE 。但你是 在这里期待阵列。
<?php
function findMostFreq($arr)
{
arsort($arr);
$freq = array();
foreach ($arr as $v) {
if (array_key_exists($v, $freq)) {
$freq[$v]++;
} else {
$freq[$v] = 1;
}
}
return $freq;
}
$arr = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple","m" => "lemon");
$result = findMostFreq($arr);
print '<pre>';
print_r($result);
print '</pre>';
&GT;
<强>输出:强>
Array
(
[orange] => 1
[lemon] => 2
[banana] => 1
[apple] => 1
)
DEMO: https://eval.in/981994
顺便说一句如果您只想要发生哪个数组值最多/多少时间,即数组在数组中出现多少次,请尝试使用array_count_values()
答案 1 :(得分:0)
试试这个
<?php
function findMostFreq($arr)
{
arsort($arr);
$freq = array();
foreach ($arr as $v) {
if (array_key_exists($v, $freq)) {
$freq[$v]++;
} else {
$freq[$v] = 1;
}
}
}
findMostFreq($someArray);