Получить значение массива по строке ключей

Я создаю механизм шаблонов для своего следующего проекта, который отлично подходит. Он заменяет {tag} соответствующим значением.

Я хочу, чтобы {tag[0][key]} также был заменен. Все, что мне нужно знать, – это как получить значение, если у меня есть строковое представление массива и ключа, например:

 $arr = array( 0 => array( 'key' => 'value' ), 1 => array( 'key' => 'value2' ) ); $tag = 'arr[0][key]'; echo($$tag); 

Это очень простая версия проблемы, я надеюсь, вы это понимаете. Или я был бы рад ответить на любые вопросы об этом.

    Я согласен с тем, что нет необходимости изобретать велосипед: сам 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";