首頁 >後端開發 >php教程 >如何將點分隔字串轉換為巢狀數組?

如何將點分隔字串轉換為巢狀數組?

DDD
DDD原創
2024-10-31 03:36:01687瀏覽

How to Convert a Dot-Delimited String to a Nested Array?

將點分隔字串轉換為巢狀數組

給定一個表示嵌套數組結構的字串,例如「Main. Sub. SubOfSub”,以及對應的值,如“SuperData”,目標是將這些資料轉換為實際的巢狀數組。

要實現此轉換,這裡有一個詳細的解決方案:

$key = "Main.Sub.SubOfSub";
$target = array();
$value = "SuperData";

$path = explode('.', $key); // Split the string into an array of keys
$root = &$target; // Reference to the main array

while (count($path) > 1) { // Iterate through the path array
    $branch = array_shift($path); // Get the current branch
    if (!isset($root[$branch])) {
        $root[$branch] = array(); // Create the branch if it doesn't exist
    }
    $root = &$root[$branch]; // Update the reference to the current branch
}

$root[$path[0]] = $value; // Set the value at the end of the path

此程式碼根據字串中指定的路徑有效地建立一個巢狀數組。變數 $root 作為數組中目前嵌套層級的引用,確保在我們遍歷路徑時將值指派給正確的分支。

以上是如何將點分隔字串轉換為巢狀數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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