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

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

作成日: 更新日:

基本的な使い方

『keyメソッドは、RecursiveIteratorIteratorが現在指し示している要素のキーを取得するメソッドです。RecursiveIteratorIteratorは、多次元配列やディレクトリ構造のような階層を持つデータ構造を、順番に一つずつ処理するために用いられます。このイテレータをループ処理(例えばforeach文)で使用する際、現在の要素の値はcurrent()メソッドで取得できますが、その要素に対応するキーが必要になる場合があります。そのような時にkey()メソッドを呼び出すと、現在処理対象となっている要素のキーが返されます。例えば、処理対象が多次元配列であれば、現在の要素の配列キー(整数インデックスまたは文字列キー)が取得できます。このメソッドは、foreach ($iterator as $key => $value)という構文における$keyの部分に相当する値を取得する役割を持ちます。通常、valid()メソッドでイテレータが有効な位置を指していることを確認した後に呼び出します。』

構文(syntax)

1<?php
2
3// 多次元配列を定義します
4$array = [
5    'fruit' => 'apple',
6    'vegetable' => [
7        'green' => 'spinach',
8        'red' => 'tomato'
9    ],
10    'grain' => 'rice'
11];
12
13// 再帰的なイテレータを作成します
14$iterator = new RecursiveIteratorIterator(
15    new RecursiveArrayIterator($array)
16);
17
18// イテレータをループ処理し、各要素のキーを取得します
19foreach ($iterator as $value) {
20    // key() メソッドで現在の要素のキーを取得し、値と共に出力します
21    echo $iterator->key() . " => " . $value . PHP_EOL;
22}

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

現在のイテレータのキーを返します。