[PHP] array_filter関数を使ってサンプルを作ってみる
Nプログラマ(@Nprog128)です。
今回は、PHPのarray_filter関数を使ってサンプルを作ってみました。
array_filter関数とは?
配列に入っている要素をフィルタリングする関数です。
フィルタリングする方法はコールバック関数で指定します。
例えば、1から10が入っている配列から、偶数だけ取り除いた奇数だけの新しい配列を取得できたりします。
新しい配列を生成して返すので、元の配列には影響がありません。
マニュアルを見てみる
1array_filter(array $array [, callable $callback [, int $flag = 0 ]]) : array
v5.6.0からflagを指定することができるようになりました。
これを使うと、コールバックの引数の受け取り方を指定することができます。
サンプルでも作って試しています。
サンプル1: リンゴだけを取り出す
フルーツの情報が入った配列から、リンゴだけを取り出すサンプルを作ってみます。
コード
サンプル1 コードを開く
結果
サンプル1の結果 を開く
$fruitsのappleだけをフィルタした結果を確認することができました。
is_apple関数を定義せず、無名関数を渡しても同じ結果が得られます。
サンプル2: コールバック関数の引数に、配列のvalueとkeyを受け取るようにしてみる
先程のサンプルでは、コールバック関数の引数が配列のvalueだけでした。
array_filterの第三引数のflagを使えば、配列のvalueとkeyの両方を渡すことができたりします。
表にするとこんな感じです。
第三引数の指定 | どうなるか? |
---|
なし | 配列のvalueをコールバックの引数に渡す |
ARRAY_FILTER_USE_KEY | 配列のkeyをコールバックの引数に渡す |
ARRAY_FILTER_USE_BOTH | 配列のvalueとkeyをコールバックの引数に渡す |
連想配列で特定のkey名や、valueでフィルタしたいという時に使えそうです。
flagでARRAY_FILTER_USE_BOTHを指定した時、コールバックが受け付ける引数の順序はvalue、keyの順序であることに注意です。
(key, valueではありません)
これを使って、以下の条件で配列をフィルタリングをするサンプルを作ってみます。
- key名がfirst_personを除外
- valueのageが40なら除外
コード
サンプル2 コードを開く
結果
サンプル2の結果 を開く
今回はにばんめの魔法使いがフィルタされるという結果になりました。
こんな感じでvalueとkeyをコールバックの引数に渡せることも覚えておくと役に立つかもしれないですね。
おわりに
今回は、array_filter関数のサンプルを作ってみるという内容でした。
第三引数のflagの使い方は、最近知ったので勉強になりました。
ちょっとフィルタ条件が多い時に使えるかもしれないですね。
それでは、このへんで。
バイナリー!
\ ちょっとお買い物 /
関連した記事
2019年6月18日
2022年10月5日
2 分
2019年6月18日
2022年10月5日
3 分
2019年4月26日
2022年10月5日
4 分
[PHP] sort関数を使ってサンプルを作ってみた
2019年4月16日
2022年10月5日
2 分
前後の記事
\ Prev /
[Atom] Tree-Viewの使い方と設定 \ Next /
[Kotlin] 入門 Hello Worldを表示してみた