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

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

作成日: 更新日:

基本的な使い方

keyメソッドは、イテレータが現在指している要素のキーを返すメソッドです。RecursiveCallbackFilterIteratorは、再帰的なデータ構造をコールバック関数によってフィルタリングするためのクラスであり、このkeyメソッドは、そのフィルタリング条件を満たした現在の要素のキーを取得するために使用されます。Iteratorインターフェースで定義されている基本的なメソッドの一つであり、foreachループなどで foreach ($iterator as $key => $value) のようにキーと値のペアを処理する際に、内部的に呼び出されます。このメソッド自体がフィルタリングを行うわけではなく、フィルタリング後のイテレータの現在の位置におけるキーを報告する役割を担います。currentメソッドが現在の要素の値を返すのに対し、keyメソッドはそれに対応するキーを返します。これにより、開発者はフィルタリングされた結果セットの中から、特定の要素が元のデータ構造においてどのキーに対応していたかを知ることができます。返されるキーの型は、元となるイテレータのキーの型に依存し、通常は整数または文字列となります。

構文(syntax)

1<?php
2
3$data = [
4    'fruit1' => 'apple',
5    'vegetable1' => 'carrot', // This will be filtered out
6    'fruit2' => 'orange',
7];
8
9$arrayIterator = new RecursiveArrayIterator($data);
10
11// Callback function to filter items. It only accepts items whose key starts with 'fruit'.
12$filterCallback = function ($current, $key, $iterator) {
13    return str_starts_with($key, 'fruit');
14};
15
16$filterIterator = new RecursiveCallbackFilterIterator($arrayIterator, $filterCallback);
17
18// Iterate through the filtered items
19foreach ($filterIterator as $value) {
20    // public RecursiveCallbackFilterIterator::key(): mixed
21    // Get the key of the current element.
22    $currentKey = $filterIterator->key();
23    
24    echo $currentKey . PHP_EOL;
25}
26
27?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

RecursiveCallbackFilterIterator::key() は、現在の要素のキーを返します。

【PHP8.x】keyメソッドの使い方 | いっしー@Webエンジニア