在preg_replace的文档中,它说您可以使用索引数组替换多个字符串。我想使用关联数组来执行此操作,但似乎不起作用。

有谁知道这是否确实行不通?

最佳答案

您要在键或键和值上执行此操作还是只保留键并处理值?不管哪种情况,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);


在键和值上:

$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);


在值保留键上:

$keys = array_keys($input);
$values = array_values($input);
$result = preg_replace($pattern, $replacement, $values);
$output = array_combine($keys, $result);


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

function regex_replace(array $input, $pattern, $replacement) {
  ...
  return $output;
}

10-08 06:54
查看更多