使用字符串路径访问嵌套数组数据
假设您有一位客户输入遵循特定格式的字符串,例如“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中文网其他相关文章!