How to find the second largest number in array in PHP

3 Answers

0 votes
function secondLargest($arr) {
    if (count($arr) < 2) {
        return null; // Not enough elements
    }

    rsort($arr); // Sort the array in descending order
    
    return $arr[1]; // Return the second element
}

$array = [3, 14, 4, 1, 5, 90, 2, 6, 85, 7];

echo secondLargest($array); 


/*
run:

85

*/

 



answered Apr 22, 2025 by avibootz
edited Apr 22, 2025 by avibootz
0 votes
function secondLargest($arr) {
    if (count($arr) < 2) {
        return null; // Not enough elements
    }

    $largest = $secondLargest = PHP_INT_MIN;
    foreach ($arr as $num) {
        if ($num > $largest) {
            $secondLargest = $largest;
            $largest = $num;
        } elseif ($num > $secondLargest && $num != $largest) {
            $secondLargest = $num;
        }
    }

    return $secondLargest;
}

$array = [3, 14, 4, 1, 5, 90, 2, 6, 85, 7];

echo secondLargest($array); 


/*
run:

85

*/

 



answered Apr 22, 2025 by avibootz
0 votes
function secondLargest($arr) {
    if (count($arr) < 2) {
        return null; // Not enough elements
    }

    $uniqueArr = array_unique($arr); // Remove duplicates
    
    rsort($uniqueArr); // Sort in descending order
    
    return $uniqueArr[1]; // Return the second element
}

$array = [3, 14, 14, 1, 1, 1, 90, 2, 6, 85, 7];

echo secondLargest($array); 


/*
run:

85

*/

 



answered Apr 22, 2025 by avibootz
...