PHPのarray_map()関数とは?構文・パラメータ・実用例を徹底解説
PHPのarray_map()関数は、配列の各要素に対してユーザー定義のコールバック関数を適用し、その結果をもとに新しい配列を生成する便利な関数です。foreachなどのループ処理を書かずに配列全体を一括変換できるため、コードが簡潔になり可読性も大きく向上します。
構文
array_map(callback, arr1, arr2, arr3, ...)
パラメータ
callback − 各要素に適用されるコールバック関数。
nullを指定すると、複数の配列を結合した新しい配列を作成できます。arr1 − 変換対象となる配列。
arr2以降 − 追加で渡す配列(省略可能)。複数の配列を渡すと、各配列の同じ位置の要素がまとめてコールバックに渡されます。
戻り値
array_map()関数は、第1引数の配列の各値にユーザー定義関数を適用した結果を含む新しい配列を返します。元の配列は変更されません。
使用例1:配列の各要素を2乗する
<?php
function square($n) {
return($n * $n);
}
$arr = array(1, 2, 3);
$res = array_map("square", $arr);
print_r($res);
?>出力結果
Array ( [0] => 1 [1] => 4 [2] => 9 )
この例では、square()という自作関数が配列内の各数値に適用され、それぞれの値が2乗された新しい配列が返されています。
使用例2:複数の配列を組み合わせる
次の例では、コールバックにnullを指定することで、複数の配列の同じ位置にある要素を1つのサブ配列としてまとめた「配列の配列」を作成しています。
<?php
$arr1 = array(1, 2, 3);
$arr2 = array("steve", "david", "nadal");
$arr3 = array("cricket", "football", "tennis");
$res = array_map(null, $arr1, $arr2, $arr3);
print_r($res);
?>出力結果
Array ( [0] => Array ( [0] => 1 [1] => steve [2] => cricket ) [1] => Array ( [0] => 2 [1] => david [2] => football ) [2] => Array ( [0] => 3 [1] => nadal [2] => tennis ) )
補足:無名関数やアロー関数でより簡潔に書く方法
PHP 5.3以降では無名関数(クロージャ)を、PHP 7.4以降ではアロー関数をそのまま渡せるため、別途関数を定義せずに済みます。
<?php // アロー関数(PHP 7.4以降) $res = array_map(fn($n) => $n * $n, [1, 2, 3]); print_r($res); ?>
このようにarray_map()は、単純な変換処理から複数配列の結合まで柔軟に対応できる、PHPの配列操作において非常に有用な関数です。
-
PHPのarray_map()関数とは?構文・パラメータ・実用例を徹底解説
PHPのarray_map()関数は、配列の各要素に対してユーザー定義のコールバック関数を適用し、その結果をもとに新しい配列を生成する便利な関数です。foreachなどのループ処理を書かずに配列全体を一括変換できるため、コードが簡潔になり可読性も大きく向上します。構文array_map(callback, arr1, arr2, arr3, ...)パラメータcallback − 各要素に適用されるコールバック関数。nullを指定すると、複数の配列を結合した新しい配列を作成できます。arr1 − 変換対象となる配列。arr2以降 − 追加で渡す配列(省略可能)。複数の配列を渡すと、各配列の同じ
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に