今回はarray_filter関数について説明します。
関数の基礎に関しては下記の記事を参考にしてください!
独学がつらくなった方は下記をご覧ください!
>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!
array_filter関数とは
array_filter関数とは、コールバック関数を使用して、配列の要素をフィルタリングする関数です。
つまり、配列要素を特定の条件で絞り込むことができる関数です。
書き方は下記の通りです。
arrat_filter(配列, コールバック関数 [, フラグ]);
第一引数にフィルタリングする対象の配列、第二引数にコールバック関数(どのようにフィルタリングするのかを指定した関数の関数名)
第三引数にはコールバック関数にどのような値を渡すのかを指定します。
返り値には、コールバック関数でフィルタリングされた結果の配列を返します。
返り値に関しては下記の記事を参考にして下さい。
array_filter関数の使い方
array_filter関数の実際の使い方を確認してみましょう!
<?php
function select($value) {
//数学以外の値を返す
return $value != "数学";
}
$array = ["国語", "理科", "社会", "数学", "体育"];
//array_filterを使用してコールバック関数に配列を渡す
$value = array_filter($array, 'select');
var_dump($value);
?>
結果は下記の通りです。
フィルタリングを行う対象の配列の要素から、「数学」以外を取得しています。
flagを指定する
第三引数にはflagを指定することで、コールバック関数にどのような値を渡すのかを指定できます。
flagには、以下を指定します。
ARRAY_FILTER_USE_KEY:配列のキーだけをコールバック関数に渡す
ARRAY_FILTER_USE_BOTH:値とキーの両方をコールバック関数に渡す
実際の例を確認してみましょう!
<?php
function test($var)
{
// 3以下の配列のキーを返す
return($var < 3);
}
$subject = [0=>'国語', 1=>'数学', 2=>'理科', 3=>'社会', 4=>'体育'];
$value = array_filter($subject, 'test', ARRAY_FILTER_USE_KEY);
var_dump($value);
?>
結果は下記の通りです。
第三引数に「ARRAY_FILTER_USE_KEY」を配置することによって、キーで比較した結果の配列が返されていることがわかります。
まとめ
✅array_filter関数の使い方
今回は以上になります。
配列の要素を全て渡す場合は、array_map関数を使用します。