2014-08-27 62 views
-1

我想根据我想要的模式使用空格分隔字符串。在每两个字,有时三个。例如:如何在php中将一个空格插入到一个字符串中?

$string = 'marketplace'; 

成为

$string = 'mark et pl ace'; 

我知道preg_replace能做到这一点,但我不知道的模式。有人可以告诉我该怎么做吗?谢谢

+0

它是否修复了两个字符? – 2014-08-27 10:51:33

+5

'@ string = implode('',str_split($ string,2));' – billyonecan 2014-08-27 10:52:21

+0

@Abaji,那么billyonecan的anser是完美的为您的需要! – 2014-08-27 10:56:00

回答

5

如果你想使用preg_replace ....但是@ billyonecan的str_split可能是一个更好的方法。

preg_replace('/(..)/','$1 ', $string); 
+2

也许'最后一个空间(trim)(...)'。 – 2014-08-27 10:59:02

+0

根据OP要求,这应该被接受。尽管如此,@vlzvl答案也是正确的。 – 2014-08-27 11:02:18

+0

然后如果你想每做一个'n':'/(。{n})/'eg:'/(。{3})/'如果原始字符串长度为'n'的精确倍数,Joop指出你可能想要结果rtrim()。 – Yorick 2014-08-27 11:07:45

3

这个?

$string = 'market'; 
echo implode(" ",str_split($string,2)); 
+0

你的答案是相同的@billyonecan – 2014-08-27 10:57:45

+0

确实,只是看到了评论。 – 2014-08-27 10:58:02

+0

模仿然后... – 2014-08-27 10:58:55

0

使用此功能。只需决定哪些步骤应放置空间。

function split_by_position($string, $position){ 
    $splitted = str_split($string, $position); 

    foreach($splitted as $part){ 
     $result .= $part.' '; 
    } 
    echo $result; 
} 

$string = 'market'; 
echo split_by_position($string, 2); 

billyonecan的解决方案真的看起来更好,当然更短。我建议你使用他的。 ^^

1

只需使用

implode(" ",str_split($string, 2)) 

在这里,重要的代码是

<?php 
$string = "market"; 
echo implode(" ",str_split($string, 2)); 
?> 

str_split$string转换成一个阵列,其内容的2个字符包。

然后implode将使用空格b/w加入所有数组值的数组。

相关问题