我想在单词之间添加字符串xx
,假设这些单词之间不存在xx
和yy
。例子:
this house
- > this xx house
this xx house
- > this xx house
this yy house
- > this yy house
this is my house
- > this xx is xx my xx house
this yy is my house
- > this yy is xx my xx house
xx xx
- > xx xx xx
this is my house yy indeed
- > this xx is xx my xx house yy indeed
如果没有其他xx
或另一个xx
,我们的想法是默认在两个单词之间插入单词yy
。但是,如果在两个单词的MIDDLE中存在xx
或yy
则不添加任何内容。
如何编写此功能?
答案 0 :(得分:0)
我想出一个答案:
function my_function($string){
$value = "";
$string = preg_replace('/\s+/', ' ', $string);
$string = explode(" ", $string);
for($i = 0; $i < sizeof($string); $i++ ){ //"for loop" here
if( $i !== (sizeof($string) - 1) ){ //do not count the last element
if( strtolower($string[$i + 1]) !== "xx" && strtolower($string[$i + 1]) !== "yy" ){ //if next element is not an "and" then we should add it
if( strtolower($string[$i]) !== "xx" && strtolower($string[$i]) !== "yy" ){ //if the actual element is not already an "AND"
array_splice($string, $i + 1, 0, "xx" );
$i = $i + 1;
}
}
}
}
foreach ($string as $i){
$value = $value . $i . " ";
}
return $value;
}
感谢答案
答案 1 :(得分:-1)
编写代码替换&#34; xx&#34;与&#34; ## @@ %% xx %% @@ ##&#34;然后用&#34;替换每个空格。 xx&#34;然后更换每一个&#34; ## @@ %% xx %% @@ ##&#34;用&#34; xx&#34;
通过将空格与稍后展开的内容折叠起来,您可以专注于新添加的内容。
然后为yy做同样的事情