カテゴリ: PHP 更新日: 2026/01/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(コールバック関数, 配列);

ここでいうコールバック関数とは、「配列の1つ1つの要素に対して実行される処理」のことです。配列の要素が1つずつ、この関数に渡されて、加工された結果が新しい配列として返ってきます。

初心者向け:とても簡単な例

次の例では、配列に入っている数字に「そのまま返す処理」を行っています。まずは動きをイメージするためのサンプルとして見てみてください。


$numbers = [1, 2, 3];

$result = array_map(function($value) {
    return $value;
}, $numbers);

print_r($result);

この場合、結果は元の配列と同じになりますが、array_mapが「配列の要素を1つずつ関数に渡している」ことが分かります。ここに計算や文字変換の処理を加えることで、配列をまとめて加工できるようになります。

2. 数字を2倍にする例

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

ここでは、array_mapを使って配列の中に入っている数字をすべて2倍にする基本的な例を見ていきましょう。計算処理と配列操作を同時に学べるので、初心者の方にもおすすめのサンプルです。

まずは、1〜5までの数字が入った配列を用意し、その値を順番に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
)

この例では、$numbersの中身が1つずつfunction($n)に渡され、$n * 2の計算結果が新しい配列として返されています。

function($n){ return $n * 2; } の部分は無名関数(名前を持たない関数)と呼ばれ、配列の各要素に対して同じ計算を行う役割を持っています。

このように、array_mapを使うと「配列の値をまとめて計算・変換する処理」を、読みやすくコンパクトに書くことができます。

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
)

この例では、配列の各要素が1つずつstrtolowerstrtoupperに渡され、変換された結果が新しい配列として返されています。

文字の表記ゆれを防ぎたいときや、表示用データを整えたいときに、array_mapを使った文字列変換はとても役立ちます。

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の配列処理においてとても重要な役割を持っているのがarray_mapという関数であることがわかります。配列の一つひとつの要素に対して共通の処理をまとめて適用できるため、同じような書き方を繰り返す必要がなくなり、より見通しのよいコードを組み立てられるようになります。特に複雑な処理を行うときほど、コードがすっきりして読みやすくなる効果が大きく、開発が進むにつれて便利さを実感する場面が増えていきます。数字を二倍にしたり文字列を大文字や小文字に変換したり、あるいは複数の配列を同時に処理して新しい形に整えるといった用途まで幅広く応用できるため、配列操作に慣れていない段階でも積極的に使いながら理解を深めることができます。 また、array_mapはコールバック関数と組み合わせることで柔軟な処理を実現できるため、機能的な書き方に自然と慣れていくきっかけになります。コールバックとして無名関数を渡す例も多く、それによって処理内容をその場で簡潔に書けるようになります。同じ処理をforeachで書いた場合との違いを比べると、処理対象が増えるほどarray_mapの記述のわかりやすさが際立ち、後から読み返したときの理解しやすさも大きく変わってきます。配列の加工や変換を行う際には、まずarray_mapで書けないかを意識することが、きれいなコードを書く第一歩と言えるでしょう。 そして、実務では配列を画面表示用に整形することもよくありますが、HTMLタグを組み合わせた加工にもarray_mapは適しており、画面に出力するデータを安全かつ整然と扱うための手助けになります。特にリスト形式のデータを扱う場面では、配列を元に

  • タグを付与して整形する処理を簡潔に書けるため、テンプレートや画面出力ロジックが想像以上にシンプルになります。また、複数の配列を結びつけて一つの意味あるデータに変換する例では、配列が持つ並び順をうまく利用しながらスマートにデータを生成できる点も大きな特徴です。このように、array_mapは単なる便利な関数というだけでなく、配列処理における基本的な考え方や書き方を自然と身につけるための重要な入口になっているのです。

    応用として使えるサンプルコード

    最後に、学んだ内容を応用する例として、配列の中の商品名に価格を付け足して表示形式を整える処理をarray_mapで実装したコードを紹介します。

    
    <?php
    $items = ["コーヒー", "お茶", "水"];
    $prices = [300, 200, 150];
    
    $result = array_map(function($name, $price) {
        return "<div class='item'>" . $name . ":" . $price . "円</div>";
    }, $items, $prices);
    
    echo implode("", $result);
    ?>
    

    この例では、二つの配列を同時に処理しながらそれぞれの要素を結びつけ、画面にそのまま表示可能な形へ整えています。配列の要素数が増えても同じ形で処理が行われるため、商品リストや一覧ページなどで効率よくデータを加工できます。array_mapの利点を活かし、複雑な処理でもシンプルにまとめられることが理解しやすい例になっています。

    先生と生徒の振り返り会話

    生徒

    「array_mapってすごく便利なんですね。最初は単純に配列を変換するだけかと思っていたけれど、複数の配列をまとめて処理できたりHTMLの表示に使えたり、応用の幅が広いんですね。」

    先生

    「そうなんですよ。配列を扱うときに繰り返し処理が必要になる場面はとても多いので、array_mapを知っていることでコードが自然に整理されていきます。読みやすくて間違いの少ない書き方にもつながるので、今後の学習でも積極的に使ってみると良いですよ。」

    生徒

    「foreachよりもスッキリ書けるのがいいですね。無名関数と一緒に書くと少し難しそうに感じますが、慣れていけば読みやすさも上がりそうです。」

    先生

    「最初は少しとまどうかもしれませんが、実際に手を動かして何度か書いてみることで自然と身につきます。配列の加工や整形をするときは、まずarray_mapで書けるかを考えてみると、コードの質が大きく変わりますよ。」

  • この記事を読んだ人からの質問

    この記事を読んだ人からの質問
    この記事を読んだ人からの質問

    プログラミング初心者からのよくある疑問/質問を解決します

    PHPのarray_map関数とは何ですか?どんな場面で使うと便利ですか?

    PHPのarray_map関数は、配列のすべての要素に対して同じ処理を一括で適用できる関数です。例えば、数字をすべて2倍にしたり、文字列をすべて大文字に変えたりする場面で便利です。
    コメント
    コメント投稿は、ログインしてください

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

    カテゴリの一覧へ
    新着記事
    New1
    PHP
    PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
    New2
    PHP
    PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
    New3
    PHP
    PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
    New4
    PHP
    PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
    -
    人気記事
    No.1
    Java&Spring記事人気No1
    Python
    Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
    No.2
    Java&Spring記事人気No2
    Python
    Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
    No.3
    Java&Spring記事人気No3
    PHP
    初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
    No.4
    Java&Spring記事人気No4
    PHP
    PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
    No.5
    Java&Spring記事人気No5
    Python
    Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
    No.6
    Java&Spring記事人気No6
    PHP
    PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
    No.7
    Java&Spring記事人気No7
    Python
    Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
    No.8
    Java&Spring記事人気No8
    Python
    PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
    -
    -