preg_replaceの引数にarrayを渡すことができますが、
preg_replace_callbackの場合はどのように渡せばいいのでしょうか?

preg_replace(array("/foo/", "/bar/"), array("hoge", "piyo"), $str);
preg_replace_callback(array("/foo/", "/bar/"), "callback_func", $str);

function callback_func($matches) {
 switch ($maches[1]) {
  case "foo":
   return "hoge";
  case "bar":
   return "piyo";
 }
}

今のところこんなのしか思い浮かばないのですが、おかしいと思うので、
どうすればいいのでしょうか?