PHP正規表現置換 小ネタ

正規表現でマッチした値をキーにした配列の値で置換する方法
preg_replace_callbackを使って実現

<?php
$_arr = array(
    1 => ‘A’,
    2 => ‘B’,
    3 => ‘C’,
    4 => ‘D’,
    5 => ‘E’,
);
$str = ‘aaa[ 5 ]bbb[ 3 ]ccc[ 1 ]ddd';
$pattern = ‘/[s*([0-9]+)s*]/';

echo preg_replace_callback($pattern,replace_arr,$str);
function replace_arr($no)
{
    global $_arr;
    return $_arr[$no[1]];
}

echo preg_replace_callback($pattern,create_function(‘$no’,’global $_arr; return $_arr[$no[1]];’),$str);
?>

上と下は同じ結果になります
aaaDbbbCcccAddd