PHPで良く使う処理まとめ
hebishima.shogo
はい、hebiです。
PHPでよく使う処理をまとめました。
今後も追記していきます。
Contents
スポンサーリンク
配列の操作をまとめました。
配列データ作成、配列件数取得、ループ処理
// 配列データ作成
$data = array(
array(
'key1' => 'aaa',
'key2' => 'bbb',
),
array(
'key1' => 'あああ',
'key2' => 'いいい',
)
);
// 配列件数取得
$row_count = count($data);
// ループ処理
foreach ($data as $index => $row) {
// value取得
echo $row['key1'];
}
配列のマージ
配列どうしをマージして一つの配列にまとめることができます。
$list = array_merge($list1, $list2);
ファイルパスやファイルの操作についてまとめました。
相対パスから絶対パスへ変換
BASEPATH../../tempのような相対パスを/var/www/html/my_codeigniter_project/tempのように絶対パスへ変換します。
$temp_path = realpath(BASEPATH . '../../temp');
ファイルやディレクトリのリストを取得
ファイルパス内にあるファイルやディレクトリの一覧を取得したい場合に利用します。
以下は.pdfのファイル一覧を取得しています。
$delete_pdfs = glob($temp_path . '/*.pdf');
ファイル存在判定
ファイルの存在判定を行います。存在する場合はtrue、存在しない場合falseで判定します。
if (is_file($file)) {
// 存在する
}else{
// 存在しない
}
ファイル削除
ファイルを削除します。
unlink($file);
ファイルパスとファイル名の結合
ファイルパスとファイル名を結合してフルパスにします。
$temp_path = ‘/var/www/html/my_codeigniter_project/temp’
$file_name = ‘test.pdf’;
⇒「/var/www/html/my_codeigniter_project/temp/test.pdf」のように正常なパスを生成できます。
$full_path = implode(DIRECTORY_SEPARATOR, array($temp_path, $file_name));
現在日時取得
$date = date("Ymd H:i");
日追加
日を追加します。
date("Ymd H:i", strtotime("+1 day"));
// +n years(年)、+n months(月)、+n hours(時)、+n minutes(分)
カスタムソート
複雑なデータをソートしたい場合はカスタムソート関数を作成してソート処理を行います。
例えば以下のような複雑なデータをソートしてみましょう。
$data = array(
"001" => array(
"A" => array(
"ID" => 1,
"Count" => 20
),
"B" => array(
"ID" => 1,
"Count" => 120
),
"C" => array(
"ID" => 1,
"Count" => 150
)
),
"002" => array(
"A" => array(
"ID" => 2,
"Count" => 10
),
"B" => array(
"ID" => 2,
"Count" => 9
),
"C" => array(
"ID" => 2,
"Count" => 13
)
)
);
B基準でCountの昇順でソートしてみます。
$key = 'B';
$value= 'Count';
// ASC用のカスタムソート関数
$sortASC = function ($a, $b) use ($key ,$value) {
$roundedA = round($a[$key ][$value]);
$roundedB = round($b[$key ][$value]);
return $roundedA - $roundedB;
};
// DESC用カスタムソート関数
$sortDESC = function ($a, $b) use ($key ,$value) {
$roundedB = round($b[$key ][$value]);
$roundedA = round($a[$key ][$value]);
return $roundedB - $roundedA;
};
uasort($data, $sortASC);
// uasort($data, $sortDESC);
以下のようにB基準のCountでソートすることができました。
DESCも問題なく動作してますね。
最後に
今後もどんどん追記していきますので、PHPの実装に迷ったらこのページを参考にしてもらえると嬉しいです。
最後までお読みいただきありがとうございました(^^♪
ABOUT ME