按键字符串获取数组值

时间:2011-02-26 15:20:27

标签: php arrays templating

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

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

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

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

echo($$tag);

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

1 个答案:

答案 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";