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

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

作成日: 更新日:

基本的な使い方

keyメソッドは、現在の親イテレータ要素のキーを取得する処理を実行するメソッドです。このメソッドは、ParentIteratorクラスが実装するIteratorインターフェースで定義されています。ParentIteratorクラスは、RecursiveIteratorIteratorと組み合わせて使用され、階層構造を持つデータの中から、子要素ではなく親要素、例えばファイルシステムにおけるディレクトリなど、を反復処理する際に内部的に利用されるイテレータです。keyメソッドを呼び出すと、ParentIteratorが現在指し示している親要素のキーが返されます。この動作は、ParentIteratorが内部で保持している元のRecursiveIteratorオブジェクトのkey()メソッドを呼び出し、その結果をそのまま返すことによって実現されます。例えば、RecursiveDirectoryIteratorをラップしている場合、このメソッドは現在処理対象となっているディレクトリの完全なパス名を文字列として返します。このように、keyメソッドは再帰的な処理の中で、現在の親要素を識別するための情報を取得する上で重要な役割を果たします。

構文(syntax)

1<?php
2
3// 多次元配列を定義します
4$data = [
5    'Web' => ['HTML', 'CSS', 'JavaScript'],
6    'Backend' => ['PHP', 'Python', 'Java'],
7];
8
9// 配列を再帰的に処理するためのイテレータを作成します
10$recursiveIterator = new RecursiveArrayIterator($data);
11$iteratorIterator = new RecursiveIteratorIterator($recursiveIterator);
12
13// RecursiveIteratorIteratorをParentIteratorでラップします
14$parentIterator = new ParentIterator($iteratorIterator);
15
16// ループで各要素を処理します
17foreach ($parentIterator as $key => $value) {
18    // ParentIterator::key() を使って親要素のキーを取得します
19    $parentKey = $parentIterator->key();
20
21    // 親のキー、現在のキー、現在の値を表示します
22    echo "[Parent: {$parentKey}] [Key: {$key}] [Value: {$value}]" . PHP_EOL;
23}
24
25?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

現在のキー(インデックスまたは配列キー)を返します。

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