我正在尝试编写一个不寻常的用例。目的是这样的:我希望客户能够提供一个字符串,例如:
"cars.honda.civic = On"
使用此字符串,我的代码将设置一个值,如下所示:
$data['cars']['honda']['civic'] = 'On';
如此简单地标记客户输入就足够了:
$token = explode("=",$input); $value = trim($token[1]); $path = trim($token[0]); $exploded_path = explode(".",$path);
但是现在,如何使用$ exploded路径设置数组而不进行诸如eval之类的讨厌操作?
使用引用运算符获取连续的现有数组:
$temp = &$data; foreach($exploded as $key) { $temp = &$temp[$key]; } $temp = $value; unset($temp);