問題:
點語法字串如何轉換,例如" 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%']]]]
以上是如何在 PHP 中有效地將點語法字串轉換為多維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!