PHPの配列操作を楽にするUnderscore.phpが便利だった
Underscore.phpについて
同じような名前のライブラリがあったりしますが、この記事ではこのリポジトリーで公開されているライブラリーのことについて書いています。
公式のドキュメントはこちら。
Underscore.php - The PHP Manipulation Toolbelt
似ているライブラリー
上記の2つも似ている(brianhaveri/Underscore.phpに至っては名前も同じ)のですが、
今回紹介したUnderscore.phpが現時点ではメンテされていそうなので、Underscore.phpを使ってみました。
便利
JavaScriptでUnderscore.jsやlodashを使ったことがあれば大体使い方がわかると思います。
<?php require 'vendor/autoload.php'; use Underscore\Types\Arrays as _; // Underscoreっぽく使いたいのでエイリアスを設定 $arr = new _(range(1, 100)); $result = $arr->filter(function($value) { // 偶数の値のみになるようにフィルタリング return $value % 2 == 0; })->each(function($value) { // それぞれの要素を10倍にする return $value * 10; })->reject(function($value) { // 500以下の値を除外する return $value <= 500; })->sort(null, 'desc')->first(5); // 降順で並び替えて、要素を先頭から5つ取得する var_dump($result);
$ php main.php object(Underscore\Types\Arrays)#2 (2) { ["typecaster":protected]=> string(7) "toArray" ["subject":protected]=> array(5) { [0]=> int(1000) [1]=> int(980) [2]=> int(960) [3]=> int(940) [4]=> int(920) } }
上記のコードは特に意味のあるコードではありませんが、PHPの配列関数(array_*)は微妙に使いにくいところがあるので、Underscore.jsなどでお馴染みの感じでPHPでも配列を扱えるのはなかなかありがたいです。
この記事とサンプルコードをみて、少しでも便利だと思ったら公式のドキュメントを覗いてみてください。
追記(2016/09/16)
レバテック フリーランスのフリーエンジニア「お役立ちコンテンツ」でご紹介いただきました。
余談ですが、私は2016/09/16時点でフリーランスエンジニアではありません。