- PHP
- 2022-06-13
この記事は最終更新日から1年以上経過しています。
配列の各要素に対して処理を行いたいとき、コールバック関数を使います。
コードの例を見ていきましょう。
$data = [ 1, 2, 3 ]; $data = array_map(function($i) { return $i * 2; }, $data ); print_r($data);
出力結果
Array ( [0] => 2 [1] => 4 [2] => 6 )
次に、各要素に掛ける数値を外部で変数として宣言します。
それだけだとコールバック関数の中で使用することは出来ませんのでuse
を使います。
$data = [ 1, 2, 3 ]; $n = 2; $data = array_map(function($i) use ($n) { return $i * $n; }, $data ); print_r($data);
同じ出力結果が得られます。
Array ( [0] => 2 [1] => 4 [2] => 6 )
他に2次元の連想配列に対して任意のデータを一括で追加することも出来ます。
$users = [ // 元のデータ [ 'name' => 'a' ], [ 'name' => 'b' ] ]; $data = [ 'new' => 1 ]; // 追加するデータ $new_users = array_map(function($user) use ($data) { return array_merge($user, $data); }, $users ); print_r($new_users);
出力結果
Array ( [0] => Array ( [name] => a [new] => 1 ) [1] => Array ( [name] => b [new] => 1 ) )
1,549 views