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

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

作成日: 更新日:

基本的な使い方

getArrayCopyメソッドは、RecursiveArrayIteratorオブジェクトが内部で保持している配列のコピーを、新しい配列として取得するメソッドです。RecursiveArrayIteratorは、多次元配列を含む配列の各要素を順番に処理するために使われるオブジェクトです。このメソッドを呼び出すと、イテレータが対象としている配列の全要素を含む、新しい配列が返されます。重要な点は、返されるのが元の配列への参照ではなく、その内容を完全に複製した独立した配列であるということです。したがって、getArrayCopyメソッドで取得した配列の内容を変更しても、RecursiveArrayIteratorが保持している元の配列データには一切影響がありません。この特性により、イテレーション処理の特定時点での配列の状態をスナップショットとして安全に保存したり、元のデータを破壊することなく配列のコピーを別の処理に引き渡したりすることが可能になります。多次元配列を扱っている場合でも、その構造全体がコピーされます。

構文(syntax)

1<?php
2
3$data = [
4    'fruit' => 'apple',
5    'vegetable' => [
6        'green' => 'spinach',
7        'red' => 'tomato'
8    ]
9];
10
11$iterator = new RecursiveArrayIterator($data);
12
13$arrayCopy = $iterator->getArrayCopy();
14
15var_dump($arrayCopy);

引数(parameters)

引数なし

引数はありません

戻り値(return)

array

RecursiveArrayIterator::getArrayCopy は、現在のイテレータが保持している配列のコピーを返します。このコピーは、現在のイテレータの位置に関わらず、常に元の配列全体を表します。

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