BETA

[PHP]代表的な高階関数を覚えよう

投稿日:2019-12-02
最終更新:2019-12-02

Javaで育ってきたマンとしては、あまり高階関数に馴染みがないです。ラムダ式が出てきてからは、それっぽくかけると思いますが。。。

今はPHPを扱うことが多いので、ちょっと試し書きしました。VerはPHP7.4です。

array_map

指定した配列の要素にコールバック関数を適用する

https://www.php.net/manual/ja/function.array-map.php

配列の各要素に加工をしたい場合に利用できそう。

$a = [1, 2, 3];  
$b = [5, 6, 7];  
$f = fn($x, $y) => $x * $y;  
$am = array_map($f, $a, $b);  
print_r($am);  
// Array  
// (  
//     [0] => 5  
//     [1] => 12  
//     [2] => 21  
// )  

array_filter

コールバック関数を使用して、配列の要素をフィルタリングする

https://www.php.net/manual/ja/function.array-filter.php

SQLでいうところのwhereみたいな感じで使えますね。

$c = [1, 3, 4];  
$f = fn($x) => ($x % 2) === 0;  
$af = array_filter($c, $f);  
print_r($af);  
// Array  
// (  
//     [2] => 4  
// )  

array_reduce

コールバック関数を用いて配列を普通の値に変更することにより、配列を再帰的に減らす

https://www.php.net/manual/ja/function.array-reduce.php

ループして色々やりたいときに利用するやつですね。

$d = [1, 10, 100, 1000];  
$f = fn($x, $y) => $x + $y;  
$ad = array_reduce($d, $f);  
printf($ad . PHP_EOL);  
// 1111  

他にもありますが、まずは代表的そうな関数を取り上げました。気になる人はもっと探してみてください。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@ma35351750の技術ブログかも

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!