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

如何在 PHP 中使用字符串路径安全地设置嵌套数组值?

DDD
DDD原创
2024-12-15 06:40:11770浏览

How to Safely Set Nested Array Values Using a String Path in PHP?

使用字符串路径设置嵌套数组数据

在此用例中,字符串输入旨在设置嵌套数组值。例如:

“cars.honda.civic = On”

此字符串应导致:

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

虽然对输入进行标记化很简单:

$token = exploded("=",$input);
$value = trim($token[1]);
$path = trim($token[0]);
$exploded_pa​​th =exploded(". ",$path);

挑战在于设置数组而不诉诸危险的技术,例如

解决方案

解决方案涉及利用引用运算符(&)来获取连续的现有数组:

$temp = & $data;
foreach($分解为$key) {

$temp = & $temp[$key];

}
$temp = $value;
unset($temp);

此方法允许您浏览嵌套数组,而无需对每个级别进行硬编码.

以上是如何在 PHP 中使用字符串路径安全地设置嵌套数组值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn