我正在为我的下一个项目构建一个模板引擎,这很棒。它用相应的值替换{tag}
。
我也希望{tag[0][key]}
被替换。我需要知道的是如何获取值,如果我有数组和键的字符串表示,如下所示:
$arr = array(
0 => array(
'key' => 'value'
),
1 => array(
'key' => 'value2'
)
);
$tag = 'arr[0][key]';
echo($$tag);
这是一个非常简单的问题版本,希望你能理解。或者我很乐意回答任何有关它的问题。
答案 0 :(得分:0)
我同意没有必要重新发明轮子:PHP本身就是作为模板引擎诞生的,并且仍然擅长这样做:
<?php echo $arr[0][key]; ?>
它甚至曾经使用过现在已弃用的表格
<?= $arr[0][key] ?>
无论如何,您可以执行以下操作
$keys = array();
preg_match_all('|\[([^\]]*)\]|', $tag, $keys);
$result = $arr;
foreach ($keys[1] as $key) {
$result = $result[$key];
}
echo "$result\n";