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

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

作成日: 更新日:

基本的な使い方

『keyメソッドは、RecursiveTreeIteratorが現在指している要素のキーを取得するために実行するメソッドです』

このメソッドが返す値は、RecursiveTreeIteratorが内部で利用している元のイテレータ(例えばRecursiveArrayIterator)のkey()メソッドが返す値と同一です。current()メソッドが、ツリー構造を表現するための接頭辞(|--など)と要素の値を連結した、表示用の文字列を返すのとは異なり、key()メソッドはデータソースにおけるキーそのものを返します。例えば、多次元連想配列を走査している場合、このメソッドは現在の要素に対応する配列のキーである文字列や整数をそのまま取得します。このため、ツリーとして整形された表示上の値ではなく、元のデータ構造における現在の位置(キー)を正確に把握したい場合にこのメソッドが役立ちます。イテレーションの各ステップで、どのキーを持つ要素を処理しているのかを特定する際に使用することが主な目的となります。

構文(syntax)

1<?php
2
3$data = [
4    'key1' => 'value1',
5    'key2' => [
6        'subkey1' => 'subvalue1',
7    ],
8];
9
10$arrayIterator = new RecursiveArrayIterator($data);
11$treeIterator = new RecursiveTreeIterator($arrayIterator);
12
13foreach ($treeIterator as $value) {
14    // 現在の要素のキーを取得する構文
15    $key = $treeIterator->key();
16    
17    echo $key . PHP_EOL;
18}
19
20?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

RecursiveTreeIterator::key() は、現在の要素のキーを返します。これは、ディレクトリ構造におけるファイル名やサブディレクトリ名に相当します。