数组的模式

时间:2014-04-23 22:39:19

标签: php arrays math

我为教育目的编写了一些代码,我需要代码来计算随机生成的数组值的模式。

如果只有一种模式(如数据集中的 5 :2,3,4,5,5,6,7)那么这很容易(参见White Elephant' s在这里回答:How to find the mode of an array in PHP)。

但是我遇到的情况有问题,在这个数据集中有多种模式(例如 3 4 :1,2,3 ,3,3,4,4,4,5,6,6)。

在Javascript(https://stackoverflow.com/a/3451640/1541165)和Java(https://stackoverflow.com/a/8858601/1541165)中似乎已经存在如何执行此操作的逻辑,但我不知道这些语言中的任何一种。< / p>

有人可能会帮助将此转换为PHP吗?或者就如何在PHP环境中解决这个问题提供指导?

感谢。

1 个答案:

答案 0 :(得分:1)

https://stackoverflow.com/a/8858601/1541165

端口到PHP
<?php

$array = array(1,2,3,4,4,5,5,6,7,8,10);

$modes = array();

$maxCount = 0;
for($i = 0; $i < count($array); $i++){
        $count = 0;
        for($j = 0; $j < count($array); $j++){
                if ($array[$j] == $array[$i]) $count++;
        }
        if($count > $maxCount){
                $maxCount = $count;
                $modes = array();
                $modes[] = $array[$i];
        } else if ( $count == $maxCount ){
                $modes[] = $array[$i];
        }
}
$modes = array_unique($modes);

print_r($modes);


?>