array_map

関数の概要

PHPの array_map 関数は、配列の各要素に対して指定したコールバック関数を適用し、その結果を新しい配列として返す便利な関数です。これにより、配列の値を一括で変換や加工することが簡単に行えます。特に複数の配列に対して同時に処理をしたい場合にも利用可能です。

パラメータの説明

  • callback:配列の各要素に適用するコールバック関数。無名関数や既存の関数名を文字列で指定します。省略も可能ですが、配列の値をそのまま返します。
  • array1:変換したい最初の配列。
  • array2, ...(省略可能):2つ目以降の配列。複数指定可能で、複数配列の同位置要素に対してコールバック関数が呼ばれます。

戻り値

コールバック関数が適用された新しい配列を返します。元の配列は変更されません。

使用例

1. 基本的な使い方(要素を二乗する)

<?php
$numbers = [1, 2, 3, 4, 5];
$squared = array_map(function($n) {
    return $n * $n;
}, $numbers);

print_r($squared);
?>

この例では、配列の各要素を二乗しています。結果は [1, 4, 9, 16, 25] となります。

2. 文字列配列の加工(大文字変換)

<?php
$fruits = ['apple', 'banana', 'cherry'];
$upperFruits = array_map('strtoupper', $fruits);

print_r($upperFruits);
?>

組み込み関数 strtoupper を使って、すべての果物名を大文字に変換しています。

3. 複数配列を使った例(対応する要素同士の足し算)

<?php
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$sum = array_map(function($a, $b) {
    return $a + $b;
}, $array1, $array2);

print_r($sum);
?>

2つの配列の同じ位置にある値を足し合わせて、新しい配列を作成しています。結果は [5, 7, 9] です。

関連する関数

  • array_filter:配列の要素を条件で絞り込む際に使います。
  • array_reduce:配列の値を1つの値にまとめる場合に利用します。
  • array_walk:配列要素に対してコールバックを適用しますが、戻り値はなく配列自体を直接操作します。

まとめ

array_map はPHPで配列を効率よく一括変換するための強力なツールです。コールバック関数を使って柔軟に変換処理が行え、1つまたは複数の配列にも対応しています。初心者でも理解しやすく、実務でもよく使われるため、ぜひ使い方をマスターしておきましょう。