如何將 PHP 中的多維數組展平為有點符號鍵的二維數組?

Susan Sarandon
發布: 2024-11-01 07:09:02
原創
211 人瀏覽過

How do you flatten multidimensional arrays in PHP into a two-dimensional array with dot notation keys?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!