在PHP中是否可以获得多个最大值?
我知道如何在PHP中找到最大值在PHP中是否可以获得多个最大值?,php,max,Php,Max,我知道如何在PHP中找到最大值 $max = max($var); 但当它有多个最大值时,它只显示一个值。但是我怎么能得到不止一个值呢 示例:(7,5,8,8,4,7,6) 如何使“8”和“8”都显示出来?如果您不关心项目的索引,那么这将起作用: $biggest = max($var); $totalOfEach = array_count_values($var); $totalBiggest = $totalOfEach[$biggest]; $arrayOfBiggest = arr
$max = max($var);
但当它有多个最大值时,它只显示一个值。但是我怎么能得到不止一个值呢
示例:(7,5,8,8,4,7,6)
如何使“8”和“8”都显示出来?如果您不关心项目的索引,那么这将起作用:
$biggest = max($var);
$totalOfEach = array_count_values($var);
$totalBiggest = $totalOfEach[$biggest];
$arrayOfBiggest = array_fill(0, $totalBiggest, $biggest);
如果您确实关心项的索引,则需要进行筛选,而不是重建数组:
$biggest = max($var);
$filter = function ($value) use ($biggest) { return $biggest === $value; };
$filteredArray = array_filter($var, $filter);
您可以选择第二个,因为代码更少。。。但这涉及到迭代每一个可能代价高昂的var项目。尝试以下方法:
<?php
$arr=array(7,5,8,8,4,7,6);
$str=getMultipleMax($arr);
echo rtrim($str, ',');
function getMultipleMax($arr){
$max=$arr[0];
$maxstr=array();
foreach($arr as $values){
if($values > $max){
$max=$values;
$maxstr ="";
$maxstr .=$values.",";
}else if($values == $max){
$maxstr .=$values.",";
}
}
return $maxstr;
}
尝试,例如:
<?php
$input = [7,5,8,8,4,7,6];
$countValues = array_count_values($input);
$max = max($input);
print('Max: ' . $max) . PHP_EOL;
print('count[max]:' . $countValues[$max]) . PHP_EOL;
print_r($countValues);
为什么不先查看列表,然后使用以获取下一个最大值:
$results = array(7,5,8,8,4,7,6);
sort($results);
$first = array_pop($results);
$second = array_pop($results);
您可以简单地使用array\u filter
如下
$arr = [7,5,8,8,4,7,6];
$max = max($arr);
$result = array_filter($arr,function($v)use($max){ return $v == $max;});
print_r($result);
输出
Array
(
[2] => 8
[3] => 8
)
这是我的设备代码
说明:最大值超过一个时打印多个结果
<?php
$test=8; //Var
$results = array(7,5,8,$test,8,4,7,6); //Array
sort($results); //Sort
if(max($results)==$test){ //If Max equal to '8'
echo " You're Engineer ";
$first = array_pop($results);
if(max($results)==$first){//If I have another '8'
echo " or ";
echo " You're Programmer ";
$second = array_pop($results);
if(max($results)==$second){ //If I have another '8' again
echo " or ";
echo " Scientist ";}
}
}
?>
展示这两个8的好处是什么?例如:我确实对未来的大学教师提出了疑问。有些人可能有两个结果。例如,你的个性可以学习计算机工程或计算机科学,因为他们的最终分数相等。我使用你的方法,发现它更适合我的项目:)