PHP

【PHPの基礎】配列の要素をフィルタリングするarray_filter関数をマスターしよう!

今回はarray_filter関数について説明します。

関数の基礎に関しては下記の記事を参考にしてください!

関数
【PHPの基礎】関数をマスターしよう! 今回解決できる内容! ✔️関数とはなんだろう? ✔️関数の使い方は? ...

独学がつらくなった方は下記をご覧ください!

>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!

array_filter関数とは

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

つまり、配列要素を特定の条件で絞り込むことができる関数です。

書き方は下記の通りです。

arrat_filter(配列, コールバック関数 [, フラグ]);

第一引数にフィルタリングする対象の配列、第二引数にコールバック関数(どのようにフィルタリングするのかを指定した関数の関数名)

第三引数にはコールバック関数にどのような値を渡すのかを指定します。

返り値には、コールバック関数でフィルタリングされた結果の配列を返します。

返り値に関しては下記の記事を参考にして下さい。

【PHPの基礎】返り値をマスターしよう!

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関数を使用します。

【PHPの基礎】array_map関数をマスターしよう!