首頁 >後端開發 >php教程 >如何在 PHP 中使用字串路徑安全地更新嵌套數組資料?

如何在 PHP 中使用字串路徑安全地更新嵌套數組資料?

Barbara Streisand
Barbara Streisand原創
2024-12-18 02:59:10459瀏覽

How to Safely Update Nested Array Data Using a String Path in PHP?

使用字串路徑存取巢狀陣列資料

假設您有一位客戶輸入遵循特定格式的字串,例如「cars . honda.civic = 開」。目標是透過以下方式利用該字串更新巢狀陣列:

$data['cars']['honda']['civic'] = 'On';

首先,使用explode函數對輸入字串進行標記:

$token = explode("=", $input);
$value = trim($token[1]);
$path = trim($token[0]);
$exploded_path = explode(".", $path);

現在,要設定陣列元素而不依賴eval 等不安全方法,請使用引用運算子(&)。 & 運算子提供了變數的引用,讓您可以直接修改其值。

$temp = &$data;
foreach ($exploded_path as $key) {
    $temp = &$temp[$key];
}
$temp = $value;
unset($temp);

本質上,$temp 充當指向陣列目前層級的指標。此循環迭代字串路徑中指定的元素,逐步建立或檢索必要的陣列。最後,設定值,然後 unset($temp) 刪除對嵌套元素的參考。

以上是如何在 PHP 中使用字串路徑安全地更新嵌套數組資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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