Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何用随机集替换字符串中的一组字符?_Php - Fatal编程技术网

Php 如何用随机集替换字符串中的一组字符?

Php 如何用随机集替换字符串中的一组字符?,php,Php,假设我有一个基本的字符串: $string = "abcdeffedcbaabcdef"; $replaceChars = array("1", "2", "3"); 我要做的是搜索a、c和f,然后用以下任一字符替换它们: $string = "abcdeffedcbaabcdef"; $replaceChars = array("1", "2", "3"); 因此,当我搜索字符串时,每次我点击一个我想要替换的字符时,我想从替换字符池中随机选择,然后移动到下一个要替换的字符并再次随机选择

假设我有一个基本的字符串:

$string = "abcdeffedcbaabcdef";
$replaceChars = array("1", "2", "3");
我要做的是搜索a、c和f,然后用以下任一字符替换它们:

$string = "abcdeffedcbaabcdef";
$replaceChars = array("1", "2", "3");
因此,当我搜索字符串时,每次我点击一个我想要替换的字符时,我想从替换字符池中随机选择,然后移动到下一个要替换的字符并再次随机选择,依此类推

我应该以这样的方式结束:

$string = "2b1de32ed1b21b2de3";
不过,我还是不能让它合二为一。我想我想使用
array\u rand()
可能还有某种foreach循环,使用
strpos()
遍历并找到要替换的字符的每个实例

让我慢下来的是,似乎有很多方法可以单步遍历数组,这样就可以为或
应用
,而
循环时,我看不出如何一次遍历一个字符串一个字符

我该怎么做

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

这使用PHP5.3+匿名函数进行回调,PHP5.2-使用更传统的方法


这使用PHP5.3+匿名函数进行回调,对PHP5.2-使用更传统的方法。

对于新手来说是一个很好的练习。。我喜欢它,它可以是新手的好运动。。我喜欢哇。我决不会想到这个!不过,似乎效果很好。非常感谢!哇!我决不会想到这个!不过,似乎效果很好。非常感谢!