使用字串路徑設定巢狀陣列資料
在變數字串表示嵌套陣列中的路徑的場景中,我們的目標是動態地在指定路徑設定值,而無需訴諸eval 等潛在不安全的方法。
首先,字串路徑為解析為令牌數組,將路徑分成單獨的段。目標是使用此標記數組來導航數組並最終在所需位置設定值。
此方法中的一個關鍵概念是引用運算子「&」的使用。這允許我們獲取當前數組層級的引用,確保對引用所做的任何修改都會反映在原始數組中。
以下程式碼示範如何遍歷陣列並指派指定值:
$temp = &$data; foreach ($exploded_path as $key) { $temp = &$temp[$key]; } $temp = $value; unset($temp);
在此程式碼中,我們首先使用 $temp = &$data 取得對陣列根的參考。然後,我們迭代 $exploded_path 的元素,使用每個鍵來取得對數組下一層的引用。最後,我們將引用的陣列元素的值設定為所需的值。
設定值後,明確取消設定 $temp 變數以打破引用鏈並防止陣列的意外修改。這可確保變更僅限於指定路徑,保持原始資料的完整性。
以上是如何在 PHP 中使用字串路徑安全地設定嵌套數組中的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!