一样做,只是preg_replace是按数组元素的顺序进行配对的
<?php
$p = array(a=>"/a/",b=>"/b/");
$r = array(b=>"A",a=>"B");
echo preg_replace($p,$r,"abab"); //out ABAB
ksort($r);
echo preg_replace($p,$r,"abab"); //out BABA
?>

解决方案 »

  1.   

    如果数组
    $a = array("a"=>"{$a}","b"=>"{$b}",c="{$c}");
    $b = array("a"=>"aaaa","b"=>"bbbb",c="cccc");
    $template = "{\$a} AND {\$b} AND {\$c}";
    要把$template 里面的{$a} {$b} {$c}替换为"aaaa" "bbbb" "cccc"应该怎么写呢?echo preg_replace($a,$b,$template); //这样不行
      

  2.   

    <?php
    $a = array(a=>"{\$a}",b=>"{\$b}",c=>"{\$c}");
    $b = array("a"=>"aaaa","b"=>"bbbb",c=>"cccc");
    $template = "{\$a} AND {\$b} AND {\$c}";//把数组$a加工成格式串
    foreach($a as $k=>$v)
      $a[$k] = "/".preg_quote($v)."/";echo preg_replace($a,$b,$template);
    ?>