用Str_Replace替换多个单词

Jim*_*Bob 4 php string replace

我想用一个特定的单词替换多个同义词.

<?p

$a = array(
'truck',
'vehicle',
'seddan',
'coupe',
'Toyota',
);
$b = array(
'car',
'car',
'car',
'car',
'Lexus',
);
$str = '

Honda is a truck. 
Toyota is a vehicle. 
Nissan is a sedan. 
Scion is a coupe.

';
echo str_replace($a,$b,$str);
?>
Run Code Online (Sandbox Code Playgroud)

结果:本田是一辆汽车.雷克萨斯是一辆车.日产是一辆车.Scion是一辆汽车.

有人能给我一个干净的方法,用"汽车"这个词取代"车辆,卡车,轿跑车,轿车"而不是我单独更换所有4个.谢谢.

Eug*_*eck 8

$a = array( 'truck', 'vehicle', 'seddan', 'coupe' );
$str = 'Honda is a truck. Toyota is a vehicle. Nissan is a sedan. Scion is a coupe.';
echo str_replace($a,'car',str_replace('Lexus','Toyota',$str));
Run Code Online (Sandbox Code Playgroud)


Bab*_*aba 5

你应该使用strtr

echo strtr($str,array_combine($a,$b)); 
Run Code Online (Sandbox Code Playgroud)

或者只是将$a和组合$b成一个数组

$ab = array('truck' => 'car','vehicle' => 'car','sedan' => 'var','coupe' => 'var','Toyota' => 'Lexus');
echo strtr($str, $ab);
Run Code Online (Sandbox Code Playgroud)

输出

Honda is a car. 
Lexus is a car. 
Nissan is a car. 
Scion is a car.
Run Code Online (Sandbox Code Playgroud)