将关联数组与preg_replace一起使用

Nic*_*ard 2 php arrays associative preg-replace

在preg_replace的文档中,它说你可以使用索引数组来替换多个字符串.我想用关联数组做这个,但它似乎不起作用.

有谁知道这确实不起作用?

cle*_*tus 5

您想要在键或键和值上执行此操作,还是仅保留键并处理值?无论是哪种情况,array_combine(),array_keys()array_values()可以组合实现这一目标.

在键上:

$keys = array_keys($input);
$values = array_values($input);
$result = preg_replace($pattern, $replacement, $keys);
$output = array_combine($result, $values);
Run Code Online (Sandbox Code Playgroud)

关于键和值:

$keys = array_keys($input);
$values = array_values($input);
$newKeys = preg_replace($pattern, $replacement, $keys);
$newValues = preg_replace($pattern, $replacement, $values);
$output = array_combine($newKeys, $newValues);
Run Code Online (Sandbox Code Playgroud)

在值保留键上:

$keys = array_keys($input);
$values = array_values($input);
$result = preg_replace($pattern, $replacement, $values);
$output = array_combine($keys, $result);
Run Code Online (Sandbox Code Playgroud)

所有这些都假定一个函数类似于:

function regex_replace(array $input, $pattern, $replacement) {
  ...
  return $output;
}
Run Code Online (Sandbox Code Playgroud)