PHPで一覧から、最も大きな数値や小さな数値を出す簡単な方法です。
max()
とmin()
を使い、文字列や配列なども処理します。
型の比較でおかしな結果になることもあるため注意しましょう。
目次
max関数で最大値を取得
最大値を返します。
最大値を取得
1 2 |
// maxのリストの中から最大値を出力 echo max(-21, 948.21, 309); |
948.21
max()
の中にカンマ区切りで入っている数値の中から、一番大きな数値が出力されました。
配列の最大値を取得
配列を指定し、最大値を取得することもできます。
1 2 3 4 5 |
// 数値の配列を変数に格納 $arr = array(-21, 948.21, 309); // 配列の中にある数値から最大値を出力 echo max($arr); |
948.21
配列の中から最大値を出力しました。
max関数の構文
文字列
max ( 比較する文字列1, 比較する文字列2, 比較する文字列3 … );
配列
max ( 配列 );
比較する数値などの文字列がカンマ区切りで格納されれば、その値の中の最大値を取得し、配列が1つだけ指定されれば、その配列の中の最大値を取得します。
配列ではない文字列が1つだけ指定されたらエラーになります。
日付の最大値を取得
日付の最大値も取得できます。
1 2 |
// 日付の最大値を出力 echo max('2016-1-2', '2013-5-31', '1999-12-1'); |
2016-1-2
年数や月日が大きい方を取得します。
配列のキーの最大値を取得
配列のキーの最大値も取得できます。
1 2 3 4 5 |
// 連想配列を変数に格納 $arr = array(12=>'momozono', 89=>'sano', 102=>'nishina'); // array_keys()を使いキーの最大値を出力 echo max(array_keys($arr)); |
102
連想配列の中から一番大きなキーを出力しました。
array_keys()
はキーを配列で取得してくれるのでmax()
の中で使うことで、取得したキーの中から最大値を出力することができます。
アルファベットの最大値を取得
max()
は数値だけでなく、アルファベットなどの文字列も最大値を取得できます。
1 2 3 4 5 |
// 文字列の配列を変数に格納 $arr = array('sano', 'aoyama', 'zaizen'); // アルファベットの最大値を出力 echo max($arr); |
zaizen
z
で始まる文字列が最大値として出力されました。
a
→z
の順で大きくなるようです。
min関数で最小値を取得
最小値を返します。
最小値を取得
1 2 |
// minのリストの中から最小値を出力 echo min(-21, 948.21, 309); |
-21
min()
の中にカンマ区切りで入っている数値の中から、一番小さな数値が出力されました。
配列の最小値を取得
配列を指定し、最小値を取得することもできます。
1 2 3 4 5 |
// 数値の配列を変数に格納 $arr = array(-21, 948.21, 309); // 配列の中にある数値から最小値を出力 echo max($arr); |
ー21
配列の中から最小値を出力しました。
min関数の構文
文字列
min ( 比較する文字列1, 比較する文字列2, 比較する文字列3 … );
配列
min ( 配列 );
比較する数値などの文字列がカンマ区切りで格納されれば、その値の中の最小値を取得し、配列が1つだけ指定されれば、その配列の中の最小値を取得します。
配列ではない文字列が1つだけ指定されたらエラーになります。
0と文字列で最小値を取得
0と文字列だとどうなるでしょう?
1 2 3 4 5 6 7 8 9 |
// 文字列が先頭の配列 $arr = array('sano', 0); // 出力 echo min($arr); // 0が先頭の配列 $arr = array(0, 'sano'); // 出力 echo min($arr); |
sano
0
文字列が先頭の配列ならsano
が先頭に0
が先頭の配列なら0
が出力されました。
文字列は0
と判定されますが、値が等しい場合は先頭の方が返されます。
※max()
も同様です。
最小値を取得するその他サンプル
先述のmax()
の項目と被るため、一気にご紹介します。
1 2 3 4 5 6 7 8 |
// 日付の最小値を出力 echo min('2016-1-2', '2013-5-31', '1999-12-1'); // array_keys()を使いキーの最小値を出力 echo min(array_keys(array(12=>'momozono', 89=>'sano', 102=>'nishina'))); // アルファベットの最小値を出力 echo min('sano', 'aoyama', 'zaizen'); |
1999-12-1
12
aoyama
上記のようにそれぞれの最小値を出力しました。
日付は古ければ古いほど小さくなります。
アルファベットはa
が小さくz
が大きくなるようです。