首页 >后端开发 >php教程 >如何在 PHP 中使用字符串路径安全地更新嵌套数组数据?

如何在 PHP 中使用字符串路径安全地更新嵌套数组数据?

Barbara Streisand
Barbara Streisand原创
2024-12-18 02:59:10445浏览

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