PHPには、ほかの言語では考えられないほどの組み込み関数(その言語であらかじめ用意されている関数)が存在しています。
ある処理をしたい時に時間をかけてその処理を作ったら実は組み込み関数で実装されていた、などということもあります。
知っていると何かの時に得する関数を以下で3つほど紹介します。
- checkdate (指定の日付が存在する日付かどうかのチェックをする)
- number_format (数字に3桁ごとにカンマを入れる)
- natcasesort (人間がやるような自然な順番に並べ替える)
●checkdate
これは、指定の日付が実際に存在するかどうかをチェックしてくれる関数です。
使い方
1 2 3 4 5 6 7 8 | if ( checkdate( 2, 29, 2003 ) ) { print "その日付は存在します"; } else { print "その日付は存在しません"; } |
実行結果
1 2 3 | その日付は存在しません |
●number_format
これは、指定の数字を3桁ごとにカンマで区切ってくれる関数です。金額の表示などのときにとても助かります。引数を指定することによりカンマ以外でも区切れます。
使い方
1 2 3 4 5 | $money = 1000000000.54321; // 小数を含んだ数 print number_format( $money ); print number_format( $money, 2, "@", "-" ); |
例
1 2 3 4 | 1,000,000,000 1-000-000-000@54 |
●natcasesort
これは、ソートを行う時に、人間がやるように自然な並びでソートしてくれる関数です。
例えば、
「img1.jpg」「img2.jpg」「img10.jpg」「img11.jpg」
のようなファイル名を並べ替えるとき、
「img2.jpg」よりも「img10.jpg」が来てしまい
しょうがなく「img02.jpg」というふうに数字を2桁にした、
ということはないでしょうか。
この場合桁数が何桁までになるか、ということを考えておかないといけませんが、
この関数を使えば(コンピュータ的にではなく人間の直観的に)正しい並びにしてくれます。
しかも、大文字と小文字が混ざっていても大丈夫です。
使い方
1 2 3 4 5 6 7 8 9 10 11 12 13 | $array = array('IMG0.jpg', 'img12.jpg', 'img10.jpg', 'img2.jpg', 'img1.JPG', 'IMG3.jpg'); sort($array); // 通常のソート print_r($array); natsort($array); // 自然ソート print_r($array); natcasesort($array); // 大文字と小文字を区別しない自然ソート print_r($array); |
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | // 通常のソート Array ( [0] => IMG0.jpg [1] => IMG3.jpg [2] => img1.JPG [3] => img10.jpg [4] => img12.jpg [5] => img2.jpg ) // 自然ソート Array ( [0] => IMG0.jpg [1] => IMG3.jpg [2] => img1.JPG [5] => img2.jpg [3] => img10.jpg [4] => img12.jpg ) // 大文字と小文字を区別しない自然ソート Array ( [0] => IMG0.jpg [2] => img1.JPG [5] => img2.jpg [1] => IMG3.jpg [3] => img10.jpg [4] => img12.jpg ) |
南本貴之