カテゴリ: PHP 更新日: 2025/11/01

PHPで関数を配列に適用する方法!初心者向けarray_map・array_filterの使い方

PHP の関数を配列に適用する(array_map, array_filter)
PHP の関数を配列に適用する(array_map, array_filter)

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

生徒

「PHPで、配列の中の数字を全部2倍にしたり、特定の条件で絞り込んだりしたいんですけど、どうやるんですか?」

先生

「それなら、array_maparray_filterという便利な関数が使えますよ。関数を配列に適用する方法です。」

生徒

「なんだか難しそうですが、初心者でも使えますか?」

先生

「大丈夫です!わかりやすい例を交えて、PHPでの使い方を丁寧に説明していきますね。」

-

1. 配列と関数を組み合わせるってどういうこと?

1. 配列と関数を組み合わせるってどういうこと?
1. 配列と関数を組み合わせるってどういうこと?

PHPの配列(はいれつ)とは、複数の値をまとめて扱うためのデータの集まりです。たとえば、数字のリストや名前の一覧などです。

そして、その配列の1つ1つの要素に対して「決まった処理を全部に適用する」ために使うのが、array_maparray_filterという関数です。

これらを使えば、「配列全体を変換する」「特定の条件に合うものだけを取り出す」といった処理が簡単にできます。

2. array_mapで配列の値を変換する

2. array_mapで配列の値を変換する
2. array_mapで配列の値を変換する

array_map(アレイ・マップ)は、配列のそれぞれの要素に対して、指定した関数を適用して新しい配列を作ります。

たとえば、すべての数字を2倍にするには次のように書きます。


function multiplyByTwo($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$result = array_map("multiplyByTwo", $numbers);

print_r($result);

このコードでは、multiplyByTwoという関数を使って、配列$numbersのすべての要素を2倍にしています。

3. 実行結果を確認しよう

3. 実行結果を確認しよう
3. 実行結果を確認しよう

上記のプログラムをPHPで実行すると、次のような結果が表示されます。


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

元の配列の1,2,3,4,5がすべて2倍になって、2,4,6,8,10という配列になっています。

4. array_filterで条件に合う要素だけを取り出す

4. array_filterで条件に合う要素だけを取り出す
4. array_filterで条件に合う要素だけを取り出す

array_filter(アレイ・フィルター)は、配列の中から「ある条件を満たすもの」だけを取り出して、新しい配列にします。

たとえば、偶数だけを取り出すには次のように書きます。


function isEven($num) {
    return $num % 2 === 0;
}

$numbers = [1, 2, 3, 4, 5];
$result = array_filter($numbers, "isEven");

print_r($result);

このコードでは、isEvenという関数で「2で割って余りが0なら偶数」と判断して、その値だけを残しています。

-

5. 実行結果を確認しよう

5. 実行結果を確認しよう
5. 実行結果を確認しよう

上記のarray_filterを実行すると、次のように表示されます。


Array
(
    [1] => 2
    [3] => 4
)

この結果から、配列の中で「偶数」である2と4だけが取り出されたことがわかります。

6. 無名関数(匿名関数)でもっとスッキリ書ける

6. 無名関数(匿名関数)でもっとスッキリ書ける
6. 無名関数(匿名関数)でもっとスッキリ書ける

PHPでは、関数に名前をつけずにその場で定義する無名関数(むめいかんすう)も使えます。コードが短くなって便利です。


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

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

print_r($result);

この例では、配列のすべての要素を2乗(にじょう)して新しい配列を作っています。

7. 初心者がつまずきやすいポイントと対策

7. 初心者がつまずきやすいポイントと対策
7. 初心者がつまずきやすいポイントと対策

プログラミング初心者の方がarray_maparray_filterでよくつまずくポイントには、次のようなものがあります。

  • 関数名を文字列で指定するのが不思議に感じる
  • 引数の順番を間違える(配列が先か関数が先か)
  • 無名関数の書き方に慣れない

最初はシンプルな例から始めて、慣れてきたら条件や処理を少しずつ変えて試すのがおすすめです。

8. 練習問題で理解を深めよう

8. 練習問題で理解を深めよう
8. 練習問題で理解を深めよう

理解をより深めるために、次のような練習をしてみましょう。

  • 奇数だけを取り出すarray_filterを作る
  • 数字を3倍にするarray_mapを書いてみる
  • 無名関数と組み合わせて自分なりの変換を考えてみる

PHPのarray_maparray_filterをマスターすれば、配列操作がぐっと楽になります。関数を組み合わせる力を身につけていきましょう!

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

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

カテゴリの一覧へ
新着記事
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)を解説する記事
-