毎日のPHP開発では、複数の配列から最大値を取得する必要があるシナリオに遭遇することがよくあります。 max()関数は、PHPの非常に実用的な組み込み関数であり、値のセットで最大のものを迅速に見つけるのに役立ちます。ただし、入力が複数の配列の場合、追加の処理手順が必要です。この記事では、max()関数を使用して最大値(つまり、すべての配列のすべての要素の最大値)を選択する方法を詳細に紹介し、完全な例と説明を含みます。
PHPのmax()関数は、次の状況で使用できます。
Max(1、5、3)は複数の値を直接比較し、最大値5を返します。
max([1、5、3])は配列に渡され、最大値5を返します。
Max([1、2]、[3、1])が2つの配列を比較すると、結果はより大きな配列です(最大値を見つけるために頻繁に使用されません)。
ただし、 max()が配列を比較する場合、すべての配列の要素値を1つずつ比較するのではなく、配列全体の「辞書順序」または「最初の要素」を比較するため、これをすべての配列の最大値を見つけるために直接使用することはできません。
たとえば、次のように複数の配列があります。
<span><span><span class="hljs-variable">$arr1</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">9</span></span><span>, </span><span><span class="hljs-number">12</span></span><span>];
</span><span><span class="hljs-variable">$arr2</span></span><span> = [</span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$arr3</span></span><span> = [</span><span><span class="hljs-number">6</span></span><span>, </span><span><span class="hljs-number">14</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>];
</span></span>
私たちの目標は、3、9、12、4、8、5、6、14、2の最大値を見つけることです。つまり、 14 。
array_merge()関数を使用して、すべての配列を1つに結合できます。
<span><span><span class="hljs-variable">$combined</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(</span><span><span class="hljs-variable">$arr1</span></span><span>, </span><span><span class="hljs-variable">$arr2</span></span><span>, </span><span><span class="hljs-variable">$arr3</span></span><span>);
</span></span>
この時点で、 $ combinedは次のとおりです。
<span><span>[</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">9</span></span><span>, </span><span><span class="hljs-number">12</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>, </span><span><span class="hljs-number">14</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>]
</span></span>
次に、マージされた配列でmax()を直接使用します。
<span><span><span class="hljs-variable">$maxValue</span></span><span> = </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$combined</span></span><span>);
</span></span>
現時点では、 $ maxValueは14であり、これはすべての配列の最大値です。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$arr1</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">9</span></span><span>, </span><span><span class="hljs-number">12</span></span><span>];
</span><span><span class="hljs-variable">$arr2</span></span><span> = [</span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$arr3</span></span><span> = [</span><span><span class="hljs-number">6</span></span><span>, </span><span><span class="hljs-number">14</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-comment">// アレイをマージします</span></span><span>
</span><span><span class="hljs-variable">$combined</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(</span><span><span class="hljs-variable">$arr1</span></span><span>, </span><span><span class="hljs-variable">$arr2</span></span><span>, </span><span><span class="hljs-variable">$arr3</span></span><span>);
</span><span><span class="hljs-comment">// 最大値を取得します</span></span><span>
</span><span><span class="hljs-variable">$maxValue</span></span><span> = </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$combined</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"最大値はです: "</span></span><span> . </span><span><span class="hljs-variable">$maxValue</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力:
<span><span><span class="hljs-section">最大値はです: 14</span></span><span>
</span></span>
配列の数が固定されていない場合、たとえば配列に保存されています。
<span><span><span class="hljs-variable">$allArrays</span></span><span> = [
[</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">9</span></span><span>, </span><span><span class="hljs-number">12</span></span><span>],
[</span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>],
[</span><span><span class="hljs-number">6</span></span><span>, </span><span><span class="hljs-number">14</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>]
];
</span></span>
array_merge(... $ allArrays)を使用して拡張してマージできます。
<span><span><span class="hljs-variable">$combined</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(...</span><span><span class="hljs-variable">$allArrays</span></span><span>);
</span><span><span class="hljs-variable">$maxValue</span></span><span> = </span><span><span class="hljs-title function_ invoke__">max</span></span><span>(</span><span><span class="hljs-variable">$combined</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"最大値はです: "</span></span><span> . </span><span><span class="hljs-variable">$maxValue</span></span><span>;
</span></span>
array_merge()およびmax()関数を合理的に使用することにより、複数の配列から最大値を見つける機能を簡単に実現できます。複数の配列をmax()に直接渡すことはできません。そうしないと、結果は予想される数値比較ではなく、配列自体の比較です。これをマスターすると、プロジェクトの論理エラーを回避できます。
この記事の詳細な手順が、 max()のスキルと配列処理のアプリケーションをよりよく理解できるようにすることを願っています。