前回の記事→「PHP 配列学習: 配列要素を比較して 1 番目と 2 番目に大きい値を取得する 」では、for ループを使用して配列内の要素のサイズを 1 つずつ比較する方法を紹介しました。 1 つを選択し、配列内の最大値と 2 番目に大きい値のメソッドを取得します。この方法は少し複雑だと思いませんか? 実は、PHP 関数を使用して、最大値と 2 番目の最大値を取得することができます。学習しましょう~
この記事のテーマは、前の例: 「一連の数値を指定して、その最大値と 2 番目の最大値を計算します。」ただし、今回は for ループや if ステートメントを使用せず、PHP の組み込み関数を使用してこれを実現します。
このようなデータのセットを含む配列を定義します:
$arr = array(555,5,1,429,18,21,52,2,52,9,3,);
最大値 555 と 2 番目の最大値 429 を取り出したいとします。
実装アイデア 1:
実際、PHP には組み込みの max() 関数があり、これを使用して最大値を取得できます。 ; 次に、配列内の最大値を削除し、max() 関数を使用して残りの要素の最大値を取得します。
実装コードを見てみましょう:
<?php header("content-type:text/html;charset=utf-8"); $arr = array(555,5,1,429,18,21,52,2,52,9,3,); $max = max($arr); $arr = array_diff($arr,array($max)); $secMax = max($arr); echo "最大值为".$max.",第二大值为".$secMax; ?>
分析:
使用するには max($arr)
$max
に割り当てられる配列の最大値。
次に、$max の値を 1 つだけ含む新しい配列を作成し、その配列を $arr 配列と比較し、その差をとります。簡単に言えば、array_diff($arr, array($max))
は、最大値 $max
を削除するために使用されます。
最後に max($arr)
を呼び出して残りの要素の最大値を取得します。元の配列の 2 番目に大きい要素を取得し、次の値を追加します。値は $secMax
に割り当てられます。
#出力結果は次のようになります:
##実装アイデア 2: #要素値のサイズに応じて配列を昇順または降順に並べ替えることができます。この場合、配列の最大値と 2 番目の最大値は、最初と 2 番目 (降順)、または最初と最後と 2 番目になります。最後の (昇順) 要素
//升序排序 $arr = array(555,5,1,429,18,21,52,2,52,9,3,); sort($arr); var_dump($arr);
//降序排序 $arr = array(555,5,1,429,18,21,52,2,52,9,3,); rsort($arr); var_dump($arr);
<?php header("content-type:text/html;charset=utf-8"); $arr = array(555,5,1,429,18,21,52,2,52,9,3,); //降序排序 rsort($arr); $max = $arr[0]; $secMax = $arr[1]; echo "最大值为".$max.",第二大值为".$secMax."<br>"; //升序排序 sort($arr); $len = count($arr); //数组长度 $max = $arr[$len-1]; $secMax = $arr[$len-2]; echo "最大值为".$max.",第二大值为".$secMax; ?>
php ビデオ チュートリアル
最後に、PHP 配列に関する無料のビデオ チュートリアルをお勧めします。PHP 関数 配列 配列関数のビデオ説明、ぜひ学んでください。
以上がPHP 配列を学習し、関数を使用して最大値と 2 番目の最大値を抽出するためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。