>>43
preg_replace('/([0-9]+)/e', "$hoge[\"$1\"]", $str)
にしたらどう?