How to find the second largest elements in an array with PHP

3 Answers

0 votes
function getTheSecondlargest(array $arr) {
    sort($arr);
    
    return $arr[sizeof($arr) - 2];
}
 
 
echo getTheSecondlargest(array(34, 3, 8, 2, 9, 4, 6)) . "\n";
echo getTheSecondlargest(array(1, 1, 2, 1, 1)) . "\n";
echo getTheSecondlargest(array(5, 5, 5, 5, 5, 5, 5)) . "\n";





/*
run:
        
9
1
5
               
*/

 



answered Aug 20, 2021 by avibootz
0 votes
function getTheSecondlargest(array $arr) {
    if(empty($arr)) {
        return -1;
    }

    $max = -1;
    $secondMax = -1;
    
    foreach($arr as $n) {
        if ($n > $max) {
            $secondMax = $max;
            $max = $n;
        }
        
        if ($n > $secondMax && $n < $max) {
            $secondMax = $n;
        }
    }
    
    return $secondMax;
}
 
 
echo getTheSecondlargest(array(34, 3, 8, 2, 9, 4, 6)) . "\n";
echo getTheSecondlargest(array(1, 1, 2, 1, 1)) . "\n";
echo getTheSecondlargest(array(5, 5, 5, 5, 5, 5, 5)) . "\n";





/*
run:
        
9
1
-1
               
*/

 



answered Aug 20, 2021 by avibootz
0 votes
function secondLargestNumber($arr) {
    if (count($arr) < 2) {
        return null; 
    }
     
    $uniqueArr = array_unique($arr); // Remove duplicates
    rsort($uniqueArr); // Sort the array in descending order
     
    return $uniqueArr[1]; // Return the second element
}
 
$array = [42, 7, 93, 58, 29, 61, 17, 84, 36, 75];
 
echo secondLargestNumber($array); 
 
 
 
/*
run:
 
84
 
*/

 



answered Jan 19, 2025 by avibootz

Related questions

3 answers 248 views
1 answer 103 views
1 answer 187 views
1 answer 190 views
2 answers 179 views
...