使用php替换字符串中的单词

时间:2014-06-20 04:47:27

标签: php

我正在尝试使用php替换字符串中的单词。 在这里,我想用$ replacearray数组中的“new program”和“test program”替换“test php”和“java test”。 注意:这里我需要使用$ searchstring数组搜索字符串中的单词,如果匹配发现它应该替换为$ replacearray

输出应为:这是新程序和测试程序

这里如果我的searchstring包含数字,我也想爆炸它并分离数字和字符串,并希望用爆炸的字符串替换$ string。我使用的分隔符是:in $ searchstring

这是我的代码

 <?php
 $string = "This is test php and java test";
 $searchstring = array('1:test php', '2:java test');
 $replacearray = array('new program', 'test program');

 $replacearraycount = count($replacearray);
 $searchstringcount = count($searchstring);

 for($i = 0; $i < $replacearraycount; $i++) {
     for($i = 0; $i < $searchstringcount; $i++) {
         $string = preg_replace("/".$searchstring[$i]."/", $replacearray[$i], $string, 1);
     }
 }

 echo $string;
 ?>

这就是我试图通过爆炸$ searchstring

 <?php
 $string = "This is test php and java test";
 $searchstring = array('1:test php', '2:java test');
 $replacearray = array('test coding','test program');

 $replacearraycount = count($replacearray);
 $searchstringcount = count($searchstring);

 foreach ($searchstring as &$value) {
 $arrid = array();
 $arrname = array();
 foreach (explode(', ', $value) as $el) {
 $ret = explode(':', $el);
 $arrid[$ret[0]] = $ret[0];
 $arrname[$ret[0]] = $ret[1];
 }
 $valueid = $arrid;
 $name = $arrname;

 $finalsearchstring=array();
 array_push($finalsearchstring,$name);
 }

 for($i = 0; $i < $replacearraycount; $i++) {
 $string = preg_replace("/".$finalsearchstring[$i]."/", $replacearray[$i], $string, 1);
 }

 echo $string;
 ?>

1 个答案:

答案 0 :(得分:3)

如果我关注你的问题,你需要一个for循环而不是两个,你的数组索引应该是$i而不仅仅是i -

for($i = 0; $i < $replacearraycount; $i++) {
  $string = preg_replace("/".$searchstring[$i]."/", $replacearray[$i], $string, 1);
}