2015-02-10 152 views
-2

我有一個字符串值爲1010,我可以知道什麼是重複每個字符N次的最簡單方法,就像重複2次結果將是11001100?謝謝。重複N次字符串中的每個字符

+1

我可以知道你自己試過了嗎?另外,你應該問這個問題在http://codegolf.stackexchange.com/ ;-) – MBaas 2015-02-10 08:55:57

回答

1
<?php 
$string="1100"; 
echo repeatChars($string,3); //111111000000 

function repeatChars($string,$times) 
{ 
    $parts=str_split($string); 
    foreach($parts as $part) 
    { 
    $output.=str_repeat($part,$times); 
    } 
    return $output; 
} 

Fiddle

對於abc2次你aabbcc

+0

很好地使用str_split和str_repeat而不是2 for循環,謝謝! – Ping 2015-02-10 09:14:56

0
$str = "1010"; 
$n=2; 
$newStr=""; 
for($i=0;$i<strlen($str);$i++){ 
    for($j=0;$j<$n;$j++){ 
     $newStr .= $str[$i]; 
    } 
} 
echo $newStr; //11001100 

Demo

0

試試這個

<?php 
    $str = '1010'; 
    $times=2; 
    $str_len=strlen($str); 
    $new_str=''; 

    for($i=0;$i<$str_len;$i++){ 
     $new_str.=str_repeat([$i],$times); 
    } 

    echo $new_str; 
    ?> 

http://php.net/str_repeat

0

你必須先炸掉你的字符串數組,然後瀏覽您的表中的各重複caractere你想要的。

<?php 
    $val = 1010; 
    $charToArray = str_split($val); 
    for($x=0; $x<=count($charToArray); $x++) { 
     for($y=1; $y<=2; $y++) { // repeat 2 time like your example 
      echo $charToArray[$x]; 
     } 
    } 
?> 
1

Simpliest大概是這樣的一個固定的重複次數:

echo preg_replace('/(.)/', '$0$0', '1010'); 

只需填寫儘可能多$0,只要你想重複的次數。


或者,重複的變量數:

echo preg_replace('/(.)/', str_repeat('$0',$times), '1010'); 

哪裏$times擁有你想要重複的(數字)數量。

+0

「n」次呢? – 2015-02-10 09:37:21

+0

那麼,你只需在第二個參數中乘以'$ 0'的數量即可。我相應地擴展了答案。感謝提示。 – arkascha 2015-02-10 09:39:26

相關問題