Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】ARRAY_FILTER_USE_BOTH定数の使い方

ARRAY_FILTER_USE_BOTH定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

ARRAY_FILTER_USE_BOTH定数は、PHPの配列を特定の条件に基づいてフィルタリングする際に利用されるarray_filter()関数の動作を制御するために使用される定数です。

この定数をarray_filter()関数の第三引数(モード引数)に指定することで、配列の各要素に対して実行されるコールバック関数に、その要素の「値」と「キー」の両方が引数として渡されるようになります。通常、array_filter()関数はコールバック関数に要素の「値」のみを渡して処理を行いますが、ARRAY_FILTER_USE_BOTHを使用すると、キーの情報も同時に参照しながらフィルタリングの条件を組み立てることが可能になります。

例えば、「値が特定の条件を満たし、かつ、そのキーも特定のパターンに合致する場合に要素を残す」といった、より複雑な条件設定を行う場合に非常に有効です。これにより、配列の内容をキーと値の両面から分析し、目的に応じた柔軟なフィルタリング処理を実装することができます。この定数を利用することで、配列のフィルタリングにおいて、要素の「値」と「キー」の両方を活用した高度な条件設定を簡単に行うことができ、プログラミングの効率とコードの可読性を高める重要な役割を果たします。

構文(syntax)

1<?php
2$data = [
3    'product_a' => 100,
4    'product_b' => 250,
5    'product_c' => 50,
6    'product_d' => 300,
7];
8
9// ARRAY_FILTER_USE_BOTH を使用すると、array_filter() のコールバック関数は
10// 要素の値とキーの両方を引数として受け取ります。
11// この例では、「キーが 'product_c' ではない」かつ「値が 200 未満」の要素をフィルタリングします。
12$filteredProducts = array_filter(
13    $data,
14    function ($value, $key) {
15        return $key !== 'product_c' && $value < 200;
16    },
17    ARRAY_FILTER_USE_BOTH
18);
19
20// $filteredProducts には ['product_a' => 100] が含まれます。
21// product_a (100): キーが 'product_c' ではない (true) && 値が 200 未満 (true) -> 含む
22// product_b (250): 値が 200 未満 (false) -> 除外
23// product_c (50): キーが 'product_c' ではない (false) -> 除外
24// product_d (300): 値が 200 未満 (false) -> 除外

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ