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

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

作成日: 更新日:

基本的な使い方

USE_KEY定数は、RecursiveRegexIteratorクラスが正規表現によるマッチング処理を行う対象を指定するための定数です。RecursiveRegexIteratorは、配列やオブジェクトのようなデータの集まりを再帰的にたどりながら、指定された正規表現パターンに一致する要素を見つけ出すためのクラスです。通常、このクラスはデータの「値」に対して正規表現のマッチングを行いますが、USE_KEY定数をコンストラクタのモード引数に指定することで、その動作を変更できます。この定数を指定した場合、マッチングの対象が「値」ではなく、各要素の「キー」になります。これにより、例えば「id_」や「config_」といった特定の接頭辞を持つキーの要素だけを抽出するなど、キーの名称に基づいた柔軟なフィルタリング処理を実現できます。データのキー自体に意味のある情報が含まれている場合に、この定数を用いることで効率的なデータ操作が可能となります。

構文(syntax)

1<?php
2
3$array = [
4    'match_key_1' => 'Value A',
5    'skip_this_key' => 'Value B',
6    'nested_array' => [
7        'match_key_2' => 'Value C',
8        'skip_this_too' => 'Value D',
9    ],
10];
11
12$arrayIterator = new RecursiveArrayIterator($array);
13
14// The regex '/^match/' will be applied to the iterator keys.
15$regexIterator = new RecursiveRegexIterator(
16    $arrayIterator,
17    '/^match/',
18    RecursiveRegexIterator::USE_KEY
19);
20
21$iterator = new RecursiveIteratorIterator($regexIterator);
22
23foreach ($iterator as $key => $value) {
24    // Outputs only the items where the key starts with "match".
25    echo "{$key}: {$value}" . PHP_EOL;
26}

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません