• PHP

array_map() を実務で活かす使い方

PHPの組み込み関数である array_map() は、配列の各要素にコールバック関数を適用して、新しい配列を作る関数です。

「ループを書かずに、配列全体を一括変換したい」ときにとても便利で、よく実務でも使用します。

実際に実務でどのように使用されるか、例をいくつかあげてみます。

array_mapの基本構文

まずは array_map() の基本構文から。詳細はPHP公式ドキュメントをご確認ください。

array_map(callable $callback, array $array, array ...$arrays): array
  • $callback:各要素に適用する関数(無名関数・クロージャ・関数名どれでもOK)
  • $array:1つ目の処理対象の配列
  • $arrays:2つ目以降の処理対象の配列
  • 返り値:変換後の新しい配列

基本例

  • 処理対象の配列が一つの場合
$numbers = [1, 2, 3, 4];
$result = array_map(fn($n) => $n * 2, $numbers);

print_r($result);
// [2, 4, 6, 8]
  • 処理対象の配列が複数の場合
$a = [1, 2, 3];
$b = [10, 20, 30];

$result = array_map(fn($x, $y) => $x + $y, $a, $b);

print_r($result);
// [11, 22, 33]

よくある実務での使用例

今回は業務系Webサービスの開発での使用例をいくつか挙げます。

入力値の空白をまとめて除去(バリデーション前)

$inputs = ['  東京 ', '大阪  ', '  名古屋  '];

$cleaned = array_map('trim', $inputs);
// ['東京', '大阪', '名古屋']
  • ポイントarray_map('trim', $array) のように関数名を直接渡すだけでシンプルに書ける。
  • 全角スペースや改行を除去して、保存前のデータをキレイに整えられます。

すべての文字を小文字に変換(データ整形)

ユーザー名やカテゴリ名を統一したいときなどに。

$categories = ['Food', 'Drink', 'Goods'];
$normalized = array_map('strtolower', $categories);

print_r($normalized);
// ['food', 'drink', 'goods']
  • ポイント:データを保存する前や、検索用に揃える処理によく使われます。

金額データをフォーマット(APIレスポンスや一覧表示)

配列内の数値をフォーマットして「1,000円」のように表示用に整えます。

$prices = [1000, 2500, 39800];
$formatted = array_map(fn($p) => number_format($p) . '円', $prices);

print_r($formatted);
// ['1,000円', '2,500円', '39,800円']
  • ポイント:フロント側でそのまま表示できるように整形して返すときに便利です。

ID一覧を整数に変換(型変換)

フォームやAPIから受け取ったIDが文字列の場合に。

$ids = ['1', '2', '3'];
$intIds = array_map('intval', $ids);

print_r($intIds);
// [1, 2, 3]
  • ポイント:DBに保存する前に型を揃える処理などでよく使われます。

複雑な配列をわかりやすい形式に変換(一覧ページなど)

APIやDBから取ったデータを「表示用の形」に整える例です。

$users = [
    ['name' => '田中', 'age' => 25],
    ['name' => '佐藤', 'age' => 30],
];

$displayList = array_map(fn($u) => "{$u['name']}さん({$u['age']}歳)", $users);

print_r($displayList);
// ['田中さん(25歳)', '佐藤さん(30歳)']
  • ポイント:ループで書くと数行かかる処理を、array_map なら1行でシンプルに書けます。

まとめ

  • array_map() は「配列の要素をまとめて変換」できる便利な関数
  • ループ処理を簡潔に書けるため、実務でも多くの場面で活躍
  • 特に以下のようなシーンで役立ちます
    • 入力データの整形(trimstrtolower など)
    • 数値や文字列のフォーマット
    • APIレスポンスの加工
    • 型変換やデータクレンジング