我该如何重写代码?

时间:2014-01-28 20:24:17

标签: php preg-replace

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

2 个答案:

答案 0 :(得分:1)

您应该可以使用array_keysarray_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()。)