2012-03-06 85 views
1

比方說,我有字符的基本字符串:如何用隨機集替換字符串中的一組字符?

$string = "abcdeffedcbaabcdef"; 

我想要做的就是尋找A,C和F,然後用這些字符中的任何一個替換它們:

$replaceChars = array("1", "2", "3"); 

所以當我搜索的字符串,每次我打我要替換的人物之一,我想隨機的替換字符池中挑選,然後移動到下一個字符替換,並再次隨機選擇,依此類推...

我應該結束了,像這樣:

$string = "2b1de32ed1b21b2de3"; 

我不能完全使它走到了一起,雖然。我想我想使用array_rand()可能與某種foreach循環,使用strpos()來通過並找到要替換的字符的每個實例。

什麼是慢我失望的是,它似乎,似乎有許多方法,通過數組加強,使人們可以應用forwhile循環,我不能看到如何通過一個字符串一個字符一個步驟時間。

我該怎麼做?

+0

可對於新手好的鍛鍊; Tibial ..我喜歡它 – 2012-03-06 04:48:42

回答

4
$newStr = preg_replace_callback('/[acf]/', function() { 
    static $replacements = array('1', '2', '3'); 
    return $replacements[array_rand($replacements)]; 
}, $str); 

http://www.php.net/preg_replace_callback

它使用PHP 5.3+匿名函數回調,使用更傳統的方法對PHP 5.2-。

+0

哇。我會*永遠不會*拿出來!但似乎很好。非常感謝! – Questioner 2012-03-06 05:28:59

相關問題