2014-08-27 151 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加入所有數組值的數組。

相關問題