gpt4 book ai didi

php - 用php中的随机数字替换字符串中的奇数位置

转载 作者:行者123 更新时间:2023-12-04 08:56:44 25 4
gpt4 key购买 nike

我有一个字符串,我只想用随机数字替换其中的奇数位置。
例如,字符串是 '123456' 。现在我想要的输出是 '528496'
请注意,奇数位置的数字 1、3、5 被随机数字 5、8、9 替换。
我知道如何使用 PHP 循环来做到这一点,但想知道是否可以使用正则表达式来完成。
我在网上找到了以下两个相关的解决方案,但仍然无法使其工作。
解决方案 1

echo preg_replace('/(.)./', '$1 ', $str);
解决方案 2
echo preg_replace_callback('/\d/', function() {
return chr(mt_rand(97, 122));
}, $str);
PS:我试图对这些问题发表评论,但由于我只有 5 的声誉,所以我无法 :(

最佳答案

替换奇数索引处的字符

echo preg_replace_callback('/.(.|$)/', function ($matches) {
return rand(0, 9) . $matches[1];
}, $str);
替换偶数索引处的字符
echo preg_replace_callback('/(.)./', function ($matches) {
return $matches[1] . rand(0, 9);
}, $str);

备注
如果您的 PHP 版本低于 7.1,则不应使用 rand()因为这是一个糟糕的功能,无法正常工作。使用 mt_rand(0, 9)反而。
如果您需要随机数加密安全,请使用 random_int(0, 9)反而。这个函数在 PHP 7 中可用。

关于php - 用php中的随机数字替换字符串中的奇数位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63781485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com