<?php
$original_chars = array(
'/A/','/B/','/C/'
);
$replaced_chars = array(
'a','b','c'
);
$updated_filename = preg_replace( $original_chars, $replaced_chars, $filename );
?>
我需要将两个带字符的数组合并成一个关联数组。
我应该如何使用上一代码示例中的preg_replace重写该行?
<?php
$array_chars = array(
'/A/' => 'a',
'/B/' => 'b',
'/C/' => 'c'
);
//$updated_filename = preg_replace( $original_chars, $replaced_chars, $filename );
?>
答案 0 :(得分:1)
您应该可以使用array_keys
和array_values
(未经测试)
$updated_filename = preg_replace( array_keys($original_chars), array_values($replaced_chars), $filename );
答案 1 :(得分:1)
首先,最好的方法是strtr()
$filename = strtr($filename, "ABC", "abc");
或
$array_chars('A' => 'a', 'B' => 'b', 'C' => 'c');
$filename = strtr($filename, $array_chars);
对于使用带关联数组的preg_replace,您必须use array_keys()
:
$result = preg_replace(array_keys($array_chars), $array_chars, $filename);
(请注意,这种方式不是很有用,并且不需要array_values()
。)