PHP勉強3日目まとめ

ノートにまとめたものをこちらにも書いていくスタイル パート3
次回はついに逆引き編
時間の計算
タイムスタンプ strtotime()
タイムスタンプ。第一引数は指定する日時、第二引数は返す値を計算するためのタイムスタンプ。
第一引数は、"now"とか"-8hours"みたいなのを入れていく。
日時表示 date()
第一引数はフォーマット形式指定、第二引数はタイプスタンプを入れる。第二引数のデフォルト値は現在時刻
フォーマット部分は、"m.d.Y"とか"H:i"とか入れる。
配列の最大と最小
最大値 max()
配列中の最大値を取り出す。(空だとValue Errorを返す)
最小値 min()
配列中の最小値を取り出す。(空だとValue Errorを返す)
最大と最小を除く array_diff(変数名, [$min, $max])
minとmaxの値を削除。(重複がない)
indexを詰める場合:array_values()
重複ありの最大最小を除く array_filter(変数名, [コールバック関数[,$flag]])
minとmaxが複数ある場合(重複がある場合)に使う。
コールバック関数はフィルタリングされた結果の関数。
<?php
// 最大値・最小値が複数ある場合
$data = [5, 10, 1, 20, 1, 15, 30, 30]; //1と30が重複
$min = min($data);
$max = max($data);
$result = array_filter($data, function($value) use($min, $max){
return $value !== $min && $value !== $max; // 最初に最小値を次に最大値をフィルタリング
});
$result = array_values($result); //インデックスを詰める関数外から持ってくる use()
関数外にある変数を関数の中で使えるようにする。
→これは、PHP7.4以降ではアロー関数を使うと短く書ける。
アロー関数
無名関数をより短く、シンプルに書く構文。関数→引数に渡す処理で使う。
アロー関数で外側の変数を書き換えても元の値に影響はない。
→元の変数を書き換える場合はアロー関数ではなくuse()を使う。
<?php
// fn~がアロー関数
$result = array_filter($data, fn($value) => $value !== $min && $value !== $max);