简体   繁体   English

如何在PHP中从数组中找到最高,第二高的数字,最低的第二低的数字

[英]How to find highest ,second highest number, Lowest Second Lowest number from Array in PHP

Highest, second highest number and lowest or smallest and second lowest number from an array in php. php.ini 数组中最高、次高的数字以及最低或最小和次低的数字。

$array = array('2','1','200','15','300','500','69','422','399','201','299'); $array = array('2','1','200','15','300','500','69','422','399','201','299');

There are several ways in php to solve this problem. php中有几种方法可以解决这个问题。

Use PHP Built in method system使用 PHP 内置方法系统

 $array = array('2','1','200','15','300','500','69','422','399','201','299');
//First order the array 
sort($array);
 $lowest = $array[0];
 $secondLowest = $array[1];
 $highest = $array[count($array)-1];
 $SecondHighest = $array[count($array)-2];

echo "Lowest number is $lowest, Second lowest number is $secondLowest and Highest number is $highest, Seoncd highest is $SecondHighest";

Find Highest and Second highest number with for loop使用 for 循环查找最高和第二大数字

$array = array('2','1','200','15','300','500','69','422','399','201','299');
$secondHighest=$highest=0;
for ($i=0; $i < count($array); $i++) { 

    if ($array[$i] > $highest ) {
        $secondHighest=$highest;
        $highest=$array[$i];
    }elseif ( $array[$i] > $secondHighest ) {
        $secondHighest= $array[$i];
    }
}

echo "Highest number is $highest and Second highest number is $secondHighest.";

Find Lowest and Second Lowest number with for loop使用 for 循环查找最低和次低数字

    $array = array('2','1','200','15','300','500','69','422','399','201','299');

$lowest=$array[0];
$gotLowest=0;
$smallArray=[];
$secondLowest=0;
$lowestnext=0;

for ($i=0; $i < count($array); $i++) { 
    // find lowest value and run only first time
    if($gotLowest == 0 ){
        for ($k=0; $k < count($array) ; $k++) { 
            if ( intval($array[$k]) < $lowest ) {
                $lowest= $array[$k]; //lowest value
            }           
        }
        $gotLowest=1; // change value so that run this condition only one time
    }

    if ( $lowestnext ==0 && intval($array[$i]) > $lowest) {
         $lowestnext=$array[$i];
    }
    // find second smaller value from array
    if ( $array[$i] > $lowest && $array[$i] <= $lowestnext ) {
        $smallArray[] = $array[$i];
        for ($j=0; $j < count($smallArray); $j++) { 
            if ( $smallArray[$j] < $secondLowest ) {
                $secondLowest=$smallArray[$j];
            }
        }
        $secondLowest=$smallArray[0];
    }
}


echo "Lowest number is $lowest and Second Lowest number is $secondLowest.";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM