【PHP8.x】keyメソッドの使い方

keyメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

keyメソッドは、イテレータが現在指している要素のキーを返すメソッドです。このメソッドは、RecursiveRegexIteratorが内部で保持している元のイテレータ(inner iterator)のkeyメソッドを呼び出し、その結果をそのまま返却します。したがって、keyメソッドが返す値とそのデータ型は、RecursiveRegexIteratorのコンストラクタに渡されたイテレータに完全に依存します。例えば、元のイテレータがRecursiveArrayIteratorであれば配列のキー(整数または文字列)が返され、RecursiveDirectoryIteratorであればファイルパスなどがキーとして返されます。RecursiveRegexIteratorは、正規表現によって要素の値をフィルタリングしますが、このkeyメソッドを利用することで、フィルタリング条件に一致した要素が、元のデータ構造においてどのキーに対応しているのかを特定できます。これにより、値だけでなく、その位置情報も同時に取得する処理を簡潔に記述することが可能になります。

構文(syntax)

1<?php
2$array = new RecursiveArrayIterator([
3    'key1' => 'value1',
4    'key2' => 'test_value2',
5    'sub'  => [
6        'subkey1' => 'value3',
7        'subkey2' => 'test_value4',
8    ],
9    'key5' => 'test_value5',
10]);
11
12$regexIterator = new RecursiveRegexIterator($array, '/^test_/', RecursiveRegexIterator::MATCH);
13
14$recursiveIterator = new RecursiveIteratorIterator($regexIterator);
15
16foreach ($recursiveIterator as $value) {
17    // 現在の要素のキーを取得します
18    $key = $recursiveIterator->key();
19    echo $key . PHP_EOL;
20}
21?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

RecursiveRegexIterator::key() は、現在のイテレータの位置に対応するキーを返します。これは通常、文字列または整数になります。