PHPで配列内の2番目に大きな数を見つけるプログラムロジック


  1. ソートして2番目の要素を取得する方法:

    function findSecondLargest($array) {
       rsort($array); // 配列を降順にソート
       return $array[1]; // ソート後の2番目の要素を返す
    }
  2. 配列を1回のループで処理する方法:

    function findSecondLargest($array) {
       $largest = $secondLargest = PHP_INT_MIN; // 初期値を最小値に設定
       foreach ($array as $num) {
           if ($num > $largest) {
               $secondLargest = $largest; // 現在の最大値を2番目に移動
               $largest = $num; // 新しい最大値を設定
           } elseif ($num > $secondLargest && $num < $largest) {
               $secondLargest = $num; // 2番目の最大値を更新
           }
       }
       return $secondLargest;
    }
  3. 配列を2回のループで処理する方法:

    function findSecondLargest($array) {
       $largest = $secondLargest = PHP_INT_MIN; // 初期値を最小値に設定
       foreach ($array as $num) {
           if ($num > $largest) {
               $largest = $num; // 新しい最大値を設定
           }
       }
       foreach ($array as $num) {
           if ($num > $secondLargest && $num < $largest) {
               $secondLargest = $num; // 2番目の最大値を更新
           }
       }
       return $secondLargest;
    }

これらの方法を使用して、配列内の2番目に大きな数を見つけることができます。選択する方法は、配列のサイズや要件によって異なる場合があります。