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);
  • X