【PHP8.x】keyメソッドの使い方
keyメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
keyメソッドは、イテレータが指している現在の要素のキーを返す処理を実行するメソッドです。このメソッドは、RegexIteratorが内部で保持している元のイテレータにおける、現在の要素のキーを返します。RegexIteratorは、配列や他のイテレータオブジェクトを正規表現パターンでフィルタリングするために使用されますが、keyメソッドを利用することで、正規表現にマッチした要素が、元のデータ構造においてどのキーに対応していたかを正確に知ることができます。例えば、foreachループでRegexIteratorのインスタンスを処理している際にこのメソッドを呼び出すと、その反復処理で扱っている要素のキーが取得できます。元のデータが連想配列であれば文字列のキーが返され、数値添字配列であればそのインデックス番号が返されます。currentメソッドがマッチした値そのものを返すのに対し、keyメソッドはキーを返すという明確な役割分担がされており、この二つを組み合わせることで、フィルタリング後の要素のキーと値のペアを確実に取得し、後続の処理に活用することが可能になります。
構文(syntax)
1<?php 2 3$items = [ 4 'apple' => 'A red fruit', 5 'banana' => 'A yellow fruit', 6 'avocado' => 'A green fruit', 7 'apricot' => 'An orange fruit' 8]; 9 10$arrayIterator = new ArrayIterator($items); 11 12// キーが 'a' で始まる要素を検索し、元のキーを保持するイテレータを作成します。 13// 第4引数に RegexIterator::USE_KEY を指定すると、key() は元の配列のキーを返します。 14$regexIterator = new RegexIterator($arrayIterator, '/^a/', RegexIterator::MATCH, RegexIterator::USE_KEY); 15 16foreach ($regexIterator as $value) { 17 // イテレータの現在のキーを取得します。 18 $key = $regexIterator->key(); 19 20 // 'apple', 'avocado', 'apricot' が順番に出力されます。 21 echo $key . PHP_EOL; 22}
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|int|null
RegexIterator::key() は、現在のイテレータ位置に対応するキーを返します。このキーは、マッチした部分文字列、または数値インデックスである可能性があります。マッチしなかった場合は null を返します。