- PHP
in_array() の使い方と実務での使用例
PHPの組み込み関数であるin_arrayは、とてもよく使う配列操作の関数です。
実際に実務でどのように使用されるか、例をいくつかあげてみます。
in_array() の基本構文
まずは in_array() の基本構文から。詳細はPHP公式ドキュメントをご確認ください。
in_array(mixed $needle, array $haystack, bool $strict = false): bool- $needle:検索したい値
- $haystack:検索対象の配列
- $strict:型も一致させたい場合は
true(デフォルトはfalse)
基本例:
$roles = ['admin', 'editor', 'viewer'];
if (in_array('admin', $roles)) {
echo '管理者です';
}よくある実務での使用例
今回は業務系Webサービスの開発での使用例をいくつか挙げます。
① ロール・権限チェック
$userRoles = ['editor', 'manager'];
if (in_array('admin', $userRoles)) {
// 管理画面へのアクセスを許可
} else {
// アクセス拒否
}Laravelなどのフレームワークでも、
軽い判定処理なら in_array() がシンプルで使いやすいです。
② ステータスによる分岐処理
注文や申請などのステータスで処理を分けるケース。
$cancelableStatuses = ['pending', 'processing'];
if (in_array($order->status, $cancelableStatuses)) {
// キャンセル処理を許可
} else {
// キャンセル不可
}業務系システムでは、
「この状態ならボタンを表示」「この状態なら処理可能」
といった条件に多用されます。
③ バリデーションや入力チェック
想定外の値が入力されていないかを簡易チェックする場面。
$allowedTypes = ['pdf', 'jpg', 'png'];
if (!in_array($uploadedFile->extension(), $allowedTypes)) {
throw new Exception('許可されていないファイル形式です');
}in_array() は軽量なので、独自バリデーションを書く場面でもよく使われます。
④ APIリクエストのパラメータ検証
外部APIから送られてくる値を、許可リストと照合する。
$allowedSortKeys = ['id', 'created_at', 'price'];
if (!in_array($request->get('sort'), $allowedSortKeys)) {
$sortKey = 'created_at'; // デフォルトにフォールバック
}セキュリティ上、動的なパラメータに制限をかけたいときにも役立ちます。
⑤ 特定ユーザーを除外
指定したユーザーIDが「除外リスト」に含まれているか確認。
$excludedUserIds = [1, 3, 5, 7];
if (in_array($user->id, $excludedUserIds)) {
continue; // 処理スキップ
}たとえばバッチ処理で「社内テストユーザーは対象外」などのケースに使われます。
⑥ 型の違いに注意する例($strict の活用)
数値と文字列の区別をしたい場合。
$ids = [1, 2, 3];
var_dump(in_array('1', $ids)); // true(デフォルトは型を無視)
var_dump(in_array('1', $ids, true)); // false(型も比較)業務アプリでは $strict = true を指定して、思わぬ一致を避けることが推奨です。
まとめ
in_array()は小さな条件分岐をスマートに書くための定番関数- 特に「許可・除外・状態分岐」の場面でよく使われる
- 型の扱いに注意しつつ、シンプルに書けるのが強み

