カテゴリ: PHP 更新日: 2025/10/16

PHPのarray_mapの使い方を完全解説!初心者でもわかる配列の要素を一括変換する方法

PHP の array_map() を使って配列の各要素を変更する方法
PHP の array_map() を使って配列の各要素を変更する方法

先生と生徒の会話形式で理解しよう

生徒

「PHPで配列の中の数字を全部2倍にしたり、文字を全部大文字に変えたりってできますか?」

先生

「そういうときにはarray_mapという関数を使うと便利です。一つひとつ手で書かなくても、まとめて変換できますよ。」

生徒

「まとめてってどういうことですか?一個ずつforeachで書くんじゃないんですか?」

先生

「もちろんforeachでもできますが、array_mapなら1行でスマートに書けます。使い方を一緒に見てみましょう!」

-

1. array_map関数とは?

1. array_map関数とは?
1. array_map関数とは?

array_map(アレイ・マップ)は、PHPで配列の中のすべての要素に対して同じ処理をまとめて行うための関数です。
例えば、数字を全部2倍にしたり、文字を全部小文字にしたりといった処理を簡単に実現できます。

構文は次の通りです。


array_map(コールバック関数, 配列);

コールバック関数とは、呼び出される関数のことです。次のセクションでわかりやすく説明します。

2. 数字を2倍にする例

2. 数字を2倍にする例
2. 数字を2倍にする例

たとえば、配列に入った数字をすべて2倍にしたいときは、次のように書きます。


$numbers = [1, 2, 3, 4, 5];

$double = array_map(function($n) {
    return $n * 2;
}, $numbers);

print_r($double);

実行結果:


Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

function($n){ return $n * 2; } の部分が無名関数(名前のない関数)で、各要素に対して処理をしています。

3. 文字列を大文字・小文字に変換する

3. 文字列を大文字・小文字に変換する
3. 文字列を大文字・小文字に変換する

array_mapは、文字列の変換にもよく使われます。
PHPにはstrtoupper(全部大文字にする)やstrtolower(全部小文字にする)といった便利な関数があるので、それらと一緒に使うとシンプルに書けます。


$names = ["taro", "HANAKO", "JiRo"];

$lower = array_map("strtolower", $names);
$upper = array_map("strtoupper", $names);

print_r($lower);
print_r($upper);

出力結果:


Array
(
    [0] => taro
    [1] => hanako
    [2] => jiro
)
Array
(
    [0] => TARO
    [1] => HANAKO
    [2] => JIRO
)

このように、既存の関数名を文字列で渡すだけでもOKです。

4. array_mapとforeachの違い

4. array_mapとforeachの違い
4. array_mapとforeachの違い

同じ処理をforeachでもできますが、array_mapの方が関数型プログラミングに近く、一行で結果が得られるのが特徴です。

foreachで書くとこうなります:


$numbers = [1, 2, 3];
$result = [];
foreach ($numbers as $n) {
    $result[] = $n * 2;
}

array_mapで書くと:


$result = array_map(function($n) { return $n * 2; }, [1, 2, 3]);

見た目がすっきりしていて、再利用性の高いコードになります。

-

5. 配列の中身をHTMLで表示する場合

5. 配列の中身をHTMLで表示する場合
5. 配列の中身をHTMLで表示する場合

ブログ記事やウェブ画面で表示する際に、配列の内容をHTMLタグで囲みたいときにもarray_mapは活躍します。


$items = ["コーヒー", "お茶", "水"];

$list = array_map(function($item) {
    return "<li>" . $item . "</li>";
}, $items);

echo "<ul>" . implode("", $list) . "</ul>";

出力結果:


<ul><li>コーヒー</li><li>お茶</li><li>水</li></ul>

配列の各要素を加工して、HTMLのリスト形式に整形するのにも便利です。

6. 複数の配列を同時に処理する

6. 複数の配列を同時に処理する
6. 複数の配列を同時に処理する

array_mapは、複数の配列を同時に処理することもできます。たとえば2つの配列を合成するような処理も可能です。


$firstNames = ["田中", "佐藤", "鈴木"];
$lastNames = ["太郎", "花子", "一郎"];

$fullNames = array_map(function($last, $first) {
    return $last . " " . $first;
}, $firstNames, $lastNames);

print_r($fullNames);

実行結果:


Array
(
    [0] => 田中 太郎
    [1] => 佐藤 花子
    [2] => 鈴木 一郎
)

このように、array_map配列の要素をまとめて変更・加工したいときに非常に便利な関数です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-