PHP のドット表記キーを使用して多次元配列を 2D 配列に変換する
PHP の多次元配列は、複雑なデータ構造を整理する便利な方法を提供します。ただし、場合によっては、多次元配列をドット表記キーを使用して 2 次元配列にフラット化することが必要になる場合があります。これは再帰的アプローチを使用して実現できます。
次の例を考えてみましょう:
<code class="php">$myArray = [ 'key1' => 'value1', 'key2' => [ 'subkey' => 'subkeyval' ], 'key3' => 'value3', 'key4' => [ 'subkey4' => [ 'subsubkey4' => 'subsubkeyval4', 'subsubkey5' => 'subsubkeyval5', ], 'subkey5' => 'subkeyval5' ] ];</code>
この配列をドット表記キーを使用した 2 次元配列に変換するには、次のコードを使用できます。 :
<code class="php">$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray)); $result = []; foreach ($ritit as $leafValue) { $keys = []; foreach (range(0, $ritit->getDepth()) as $depth) { $keys[] = $ritit->getSubIterator($depth)->key(); } $result[join('.', $keys)] = $leafValue; }</code>
このコードは、RecursiveIteratorIterator クラスと RecursiveArrayIterator クラスを使用して、多次元配列を再帰的に繰り返します。配列内の各リーフ値について、親配列と子配列のキーを結合することによってドット表記キーを作成します。結果は、以下に示すように、ドット表記キーを持つ新しい 2 次元配列になります。
<code class="php">[ 'key1' => 'value1', 'key2.subkey' => 'subkeyval', 'key3' => 'value3', 'key4.subkey4.subsubkey4' => 'subsubkeyval4', 'key4.subkey4.subsubkey5' => 'subsubkeyval5', 'key4.subkey5' => 'subkeyval5' ]</code>
この手法は、処理または表示のためにフラット構造に変換する必要があるデータを操作する場合に特に役立ちます。 .
以上がPHP で多次元配列をドット表記キーを使用した 2 次元配列にフラット化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。