-1

这是我目前拥有的:

$sum = array_count_values($_POST);
$max_value = max($sum);
$max_key = array_search($max_value, $sum);

$sum 包含例如A->2 B->6 C->4max($sum)然后将取 6,$max_key将获得该 6 的密钥(在本例中为 B)。

现在如果$sum是这样呢?A->3 B->7 C->7,它取B->6最高值。

在这种情况下,我想$max_key成为一个包含字母 B 和 C 的数组,以便我可以在 foreach 循环中使用它。

谢谢,劳伦特

4

2 回答 2

3

如果你只想要数组中的最大值键试试这个,

$array = array("A" => 2,"B" => 7,"C" => "7");
$maxs_keys = array_keys($array, max($array));
print_r($maxs_keys);

键盘演示。

于 2013-04-01T14:12:01.543 回答
0

如果你有 PHP 5.3,那么你可以像这样方便地使用 array_filter:

$sum = array( 'A'=>3, 'B'=>7, 'C'=>7 ); $max_value = max($sum); $result = array_filter( $sum, function($x) use ($max_value) { return $x === $max_value; } ); print_r($result);

上面的代码片段将打印你想要的: Array ( [B] => 7 [C] => 7 )

如果您只想要结果的键,请使用 array_keys 提取它们。

于 2013-04-01T14:28:05.670 回答