PHP Max可显示多个值

时间:2013-04-01 14:04:08

标签: php arrays foreach sum max

这就是我现在所拥有的:

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

$ sum包含例如A->2 B->6 C->4 然后max($sum)将获得6,$max_key将获得该关键字6(在这种情况下为B)。

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

我希望$max_key是一个包含字母B和C的数组 所以我可以在foreach循环中使用它。

谢谢,Laurent

2 个答案:

答案 0 :(得分:3)

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

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

Codepad Demo.

答案 1 :(得分: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);

上面的代码段将打印您想要的内容: 排列 (     [B] => 7     [C] => 7 )

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