0

我正在为我的下一个项目构建一个模板引擎,这很好。它替换{tag}为相应的值。

我也想{tag[0][key]}换。我只需要知道如何获取值,如果我有数组和键的字符串表示,如下所示:

$arr = array(
    0 => array(
        'key' => 'value'
    ),
    1 => array(
        'key' => 'value2'
    )
);

$tag = 'arr[0][key]';

echo($$tag);

这是一个非常简单的问题版本,希望你能理解。否则我很乐意回答有关它的任何问题。

4

1 回答 1

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";
于 2011-02-26T15:50:13.717 回答