こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 PHPで配列の各要素に関数を適用させることができるarray_map関数について
- array_map関数とは
- array_map関数を使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境
この記事では、PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
PHPのバージョンは、【7.4.6】です。
array_map関数とは
array_map関数とは、引数に指定された配列の各要素に関数を適用させたできた配列を返す関数です。
引数は以下のように指定します。
第一引数(必須) | 配列に適用させたい関数名を指定 (コールバック関数) |
---|---|
第二引数(必須) | 関数を適用させたい配列を指定 |
第三引数以降(任意) | 関数を適用させたい配列を指定 |
第一引数の関数には
- 組み込み関数
- ユーザー定義関数
- 無名関数
を指定します。
使い方サンプルは下記になります。
上記サンプルの場合、変数resultには
Array
(
[0] => 4
[1] => 18
)
という配列が返されます。
複数の配列を指定する場合は、第一引数の関数の引数に注意する必要があります。
それは、指定したい配列の数だけ関数の引数の数を増やす必要があります。
理由は、関数の引数の数分だけ各配列の各要素を使うことができるからです。
サンプルは以下です。
上記サンプルの場合、変数resultには
Array
(
[0] => 14
[1] => 45
)
という配列が返されます。
array_map関数は複数の配列を指定した場合、インデックスが同じ要素を抽出して処理をしていきます。
もし指定した配列の長さ等しくない場合、要素数の少ない配列は空の要素とみなされ処理されていきます。
何かしらの例外が出る、というわけではありません。
では、次の章で実際に使ってみます。
array_map関数を解説するプログラムの概要
array_map関数を解説するプログラムでは、
- 配列を1つ指定した場合
- 配列を2つ指定した場合
の2パターンでarray_map関数を使い、結果を表示させます。
phpプログラムは
C:\xampp\htdocs
配下に、【arraymapsample.php】というファイル名で格納しています。
PHPサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php /** * 渡された文字列を連結する */ function getName($name, $age){ return $name.'さんは'.$age.'歳'; } // 配列を1つ指定した場合 $fruit_array = ['リンゴ', '柿']; $fruit_result = array_map('mb_strlen', $fruit_array); print('■配列を1つ指定した場合<br />'); print('指定する配列'); print_r('<pre>'); print_r($fruit_array); print_r('</pre>'); print('各要素に処理した結果'); print_r('<pre>'); print_r($fruit_result); print_r('</pre>'); // 配列を2つ指定した場合 $name_array = ['田中', '鈴木', '佐藤']; $age_array = [10, 28]; $name_result = array_map('getName', $name_array, $age_array); print('■配列を2つ指定した場合<br />'); print('指定する配列'); print_r('<pre>'); print_r($name_array); print_r($age_array); print_r('</pre>'); print('各要素に処理した結果'); print_r('<pre>'); print_r($name_result); print_r('</pre>'); ?> |
サンプルプログラムで使用している
- mb_strlen関数
については、こちらの記事をご参考ください。
実行結果
XAMPPを起動して、【http://localhost/arraymapsample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
指定した配列の各要素に対して関数が適用されていることを確認できました!
まとめ:array_map関数を使ってみよう!
以上がarray_map関数についての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント