5

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

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

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

有人能告诉我用“汽车”这个词替换“车辆、卡车、双门轿车、轿车”的干净方法,而不是我单独替换所有 4 个。谢谢你。

4

5 回答 5

9
$a = array( 'truck', 'vehicle', 'sedan', '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('Toyota','Lexus',$str));
于 2012-09-30T22:39:26.770 回答
5

你应该使用strtr

echo strtr($str,array_combine($a,$b)); 

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

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

输出

Honda is a car. 
Lexus is a car. 
Nissan is a car. 
Scion is a car.
于 2012-09-30T22:55:42.880 回答
2

我找到了一个非常简单的解决方案来替换字符串中的多个单词:

<?php
 $str="    Honda is a truck. 
Toyota is a vehicle. 
Nissan is a sedan. 
Scion is a coupe.";


$pattern=array();
$pattern[0]="truck";
$pattern[1]="vehicle";
$pattern[2]="sedan";
$pattern[3]="coupe";



$replacement=array();
$replacement[0]="car";
$replacement[1]="car";
$replacement[2]="car";
$replacement[3]="car";



echo str_replace($pattern,$replacement,$str);?> 

输出 :

  Honda is a car. 
Toyota is a car. 
Nissan is a car. 
Scion is a car

使用此脚本,您可以根据需要替换字符串中任意数量的单词:

只需将单词(您要替换的)放在模式数组中,例如:

     $pattern[0]="/replaceme/"; 

并将字符(将用于代替被替换字符)放在替换数组中,例如:

      $replacement[0]="new_word"; 

快乐编码!

于 2015-05-16T05:03:06.250 回答
1

就像是

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

应该管用。

http://codepad.org/1LhtcOSR

编辑:

这样的事情应该会产生预期的结果: http: //pastebin.com/xGzYiCk3

$text = '{test|test2|test3} some other stuff {some1|some2|some3}';

输出:

test3 其他一些东西 some1
test2 其他一些东西 some2
test3 一些其他的东西 some3
test3 其他一些东西 some1
于 2012-09-30T22:48:33.543 回答
0

用于用其他短语替换短语(一次多个)。您可以将数组作为参数传递给str_replace()

// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = ["fruits", "vegetables", "fiber"];
$yummy   = ["pizza", "beer", "ice cream"];

$newPhrase = str_replace($healthy, $yummy, $phrase);
于 2019-09-23T11:03:56.100 回答