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

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

Barbara Streisand
發布: 2024-12-18 02:59:10
原創
447 人瀏覽過

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

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