配列の最小値や最大値を取得できるminとmax
PHPのmin関数とmax関数はそれぞれ配列の最小値と最大値を取得できる関数です。
次のように引数に対象の配列を指定します。
(※実際には配列だけでなく、引数に直接数値入れても最小値最大値を取得することができます。)
min関数とmax関数それぞれの例は以下の通りです。
min関数で最小値を取得する
下の例では、min関数を用いることにより最小値である15が取得されます。
PHP
$arr = [24,35,32,21,15,49]; $min = min($arr); var_dump($min);//結果は15
値が文字列でも比較でき、その場合は「a < z < A < Z < あ < ん < ア < ン < 漢字」という順になります。
PHP
$arr = ['tokyo','さいたま','神奈川','chiba','イバラキ','tochigi','gunma']; $min = min($arr); var_dump($min);//結果はchiba
max関数で最小値を取得する
下の例では、max関数を用いることにより最大値である49が取得されます。
PHP
$arr = [24,35,32,21,15,49]; $max = max($arr); var_dump($max);//結果は49
max関数においてもmin関数と同様に値が文字列でも最大値を取得可能です。
PHP
$arr = ['tokyo','さいたま','神奈川','chiba','イバラキ','tochigi','gunma']; $max = max($arr); var_dump($max);//結果は神奈川
連想配列に対してmin関数とmax関数を使った場合
下の例のような連想配列に対してmin関数max関数を用いると、値を比較して最小値最大値を返します。数値と文字列が混在している場合は「a < z < A < Z < あ < ん < ア < ン < 漢字」という順序になります。
PHP
$arr = ['id' => 29, 'name' => '東京', 'furigana' => 'トウキョウ', 'code' => 'tokyo']; echo "最小値は、「" . min($arr) . "」です。";//29 echo "最大値は、「" . max($arr) . "」です。";//東京
多次元連想配列から特定のカラムの最小値最大値を取得する
下の例のような多次元連想配列の特定のカラムから最小値最大値を取得したい場合は、array_column関数と組み合わせて処理します。
array_column関数を使うと多次元連想配列から特定のカラムの値のみを抽出して新しい配列を生成することができます。
こうして用意した新しい配列に対してmin関数max関数を用いて最小値最大値を取り出します。
array_column関数について詳しくはこちらの記事をご覧ください。
PHP
$arr = [ ['id' => 1, 'name' => '東京太郎', 'age' =>'24', 'furigana' => 'トウキョウタロウ'], ['id' => 2, 'name' => '埼玉次郎', 'age' =>'35', 'furigana' => 'サイタマジロウ'], ['id' => 3, 'name' => '千葉花子', 'age' =>'21', 'furigana' => 'チバハナコ'], ['id' => 4, 'name' => '神奈川一郎', 'age' =>'48', 'furigana' => 'カナガワイチロウ'], ['id' => 5, 'name' => '茨城春子', 'age' =>'48', 'furigana' => 'イバラキハルコ'], ['id' => 6, 'name' => '栃木三郎', 'age' =>'48', 'furigana' => 'トチギサブロウ'], ]; $target_column = array_column($arr,'age'); echo "最小値は、「" . min($target_column) . "」です。"; echo "最大値は、「" . max($target_column) . "」です。";
9行目array_columnを使って「age(年齢)」の値のみを抽出した新しい配列($target_column)を生成しています。
10行目11行目$target_columnに対してmin関数max関数で最小値最大値を取り出します。
まとめ
以上が、PHPのmin関数とmax関数を使って配列の最小値や最大値を取得する方法です。