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

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

Mary-Kate Olsen
發布: 2024-12-01 16:01:11
原創
418 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板