在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;
}