fork(1) download
  1. <?php
  2.  
  3. $re = '@(?:#(\$[^.#]+)(?=\.[^#]*#)|\G(?!^))\.([^#.]+)#?@';
  4. $str = '#$test.a.b.c# #$test.a#';
  5. echo preg_replace($re, '$1[\'$2\']', $str);
  6.  
Success #stdin #stdout 0.02s 23916KB
stdin
Standard input is empty
stdout
$test['a']['b']['c'] $test['a']