在PHP 中使用點表示法鍵將多維數組轉換為二維數組
PHP 中的多維數組提供了一種組織複雜資料結構的便捷方法。然而,有時可能需要將多維數組展平為具有點符號鍵的二維數組。這可以使用遞歸方法來實現。
考慮以下範例:
<code class="php">$myArray = [ 'key1' => 'value1', 'key2' => [ 'subkey' => 'subkeyval' ], 'key3' => 'value3', 'key4' => [ 'subkey4' => [ 'subsubkey4' => 'subsubkeyval4', 'subsubkey5' => 'subsubkeyval5', ], 'subkey5' => 'subkeyval5' ] ];</code>
要將此陣列轉換為有點表示法鍵的二維數組,我們可以使用以下程式碼:
<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 類別在多維數組上遞歸迭代。對於數組中的每個葉值,它透過連接父數組和子數組的鍵來建立點符號鍵。結果是一個帶有有點符號鍵的新二維數組,如下所示:
<code class="php">[ 'key1' => 'value1', 'key2.subkey' => 'subkeyval', 'key3' => 'value3', 'key4.subkey4.subsubkey4' => 'subsubkeyval4', 'key4.subkey4.subsubkey5' => 'subsubkeyval5', 'key4.subkey5' => 'subkeyval5' ]</code>
當處理需要轉換為平面結構以進行處理或顯示的數據時,此技術特別有用.
以上是如何將 PHP 中的多維數組展平為有點符號鍵的二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!