首頁 >後端開發 >php教程 >如何在 PHP 中有效地將點語法字串轉換為多維數組?

如何在 PHP 中有效地將點語法字串轉換為多維數組?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-01 16:01:11421瀏覽

How to Efficiently Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

在PHP 中將點語法字串轉換為多維數組

問題:

點語法字串如何轉換,例如" this.that.other”,可以有效地轉換為多維數組PHP?

答案:

一個高效的解決方案是利用如下的遞歸函數:

function assignArrayByPath(&$arr, $path, $value, $separator='.') {
    $keys = explode($separator, $path);

    foreach ($keys as $key) {
        $arr = &$arr[$key];
    }

    $arr = $value;
}

這個函數迭代地遍歷數組,使用「>

這個函數迭代地遍歷數組.”作為分隔符,一路創建任何缺失的鍵,直到達到所需的屬性並設定其值。

$source = [];
assignArrayByPath($source, 's1.t1.column.1', 'size:33%');

print_r($source); // Outputs: ['s1' => ['t1' => ['column' => ['1' => 'size:33%']]]]
例如,使用以下範例字串:“s1.t1.column.1 = size:33 %”,該函數將產生一個相當於: 的陣列結構

以上是如何在 PHP 中有效地將點語法字串轉換為多維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn