PHP のドット表記キーを使用した多次元配列から 2D 配列への変換
PHP の配列構造では、ドット表記を使用できます。ネストされた配列要素にアクセスする便利な方法。ただし、ドット表記キーを使用して多次元配列を 2D 配列に変換する必要があるシナリオもあります。
問題:
多次元配列の場合、目標は次のとおりです。これを 2D 配列に変換します。各要素には、元の配列構造内のパスを表すドット表記のキーが割り当てられます。
解決策:
RecursiveIteratorIterator と RecursiveArrayIterator を利用するクラスを使用すると、多次元配列を再帰的に走査できます。走査中に、反復の深さに基づいてキーが蓄積されます。次に、配列のリーフ値が構築されたドット表記キーに割り当てられ、目的の 2D 配列が得られます。
コード:
<code class="php">$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray)); $result = array(); foreach ($ritit as $leafValue) { $keys = array(); foreach (range(0, $ritit->getDepth()) as $depth) { $keys[] = $ritit->getSubIterator($depth)->key(); } $result[ join('.', $keys) ] = $leafValue; }</code>
出力:
Array ( [key1] => value1 [key2.subkey] => subkeyval [key3] => value3 [key4.subkey4.subsubkey4] => subsubkeyval4 [key4.subkey4.subsubkey5] => subsubkeyval5 [key4.subkey5] => subkeyval5 )
反復子クラスの再帰的性質とトラバーサル中のドット表記キーの構築を利用することにより、このコード スニペットは、多次元配列をドット表記キーを使用した 2D 配列に効果的に変換します。
以上がPHP でドット表記キーを使用して多次元配列を 2D 配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。