我正在尝试从代码中删除eval()
。
目前我使用:
eval( "$mkt_data" . $branch . " = $xyz" );
将$xyz
(也是一个多维数组)分配给$mkt_data
的特定分支。
$branch can be 1, 2 or 3 levels deep, i.e.
$branch = "['mkt1']['offer']['bid']";
or
$branch = "['status']";
有一种聪明的方法吗?
答案 0 :(得分:0)
您可以使用以下功能:
function set(&$ary, $keys, $value) {
$last = array_pop($keys);
foreach($keys as $k) {
if(!isset($ary[$k]))
$ary[$k] = array();
$ary = &$ary[$k];
}
$ary[$last] = $value;
}
示例:
$data = array();
set($data, array('foo', 'bar', 'baz'), 42);
print_r($data);
结果:
Array
(
[foo] => Array
(
[bar] => Array
(
[baz] => 42
)
)
)