使用字符串路径设置嵌套数组数据
在变量字符串表示嵌套数组中的路径的场景中,我们的目标是动态地在指定路径设置值,而无需诉诸 eval 等潜在不安全的方法。
首先,字符串路径为解析为令牌数组,将路径分成单独的段。目标是使用此标记数组来导航数组并最终在所需位置设置值。
此方法中的一个关键概念是引用运算符“&”的使用。这允许我们获取当前数组级别的引用,确保对引用所做的任何修改都会反映在原始数组中。
以下代码演示了如何遍历数组并分配指定值:
$temp = &$data; foreach ($exploded_path as $key) { $temp = &$temp[$key]; } $temp = $value; unset($temp);
在此代码中,我们首先使用 $temp = &$data 获取对数组根的引用。然后,我们迭代 $exploded_path 的元素,使用每个键来获取对数组下一层的引用。最后,我们将引用的数组元素的值设置为所需的值。
设置值后,显式取消设置 $temp 变量以打破引用链并防止对数组的意外修改。这可确保更改仅限于指定路径,保持原始数据的完整性。
以上是如何在 PHP 中使用字符串路径安全地设置嵌套数组中的值?的详细内容。更多信息请关注PHP中文网其他相关文章!