5

複数の同義語を特定の 1 つの単語に置き換えたい。

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

結果:ホンダは車です。レクサスは車です。車は日産。サイオンは車です。

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

$aまたは、$b1つのアレイに結合するだけです

$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 に答える
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 に答える