php随机混合alpha情况
我想找到另一种方法将字符串中的一些字符转换为混合大小写。我认为我的方法不是最佳方法php随机混合alpha情况,php,string,Php,String,我想找到另一种方法将字符串中的一些字符转换为混合大小写。我认为我的方法不是最佳方法 $arr_str = str_split("w2abcd"); $atCase = ""; foreach ($arr_str as $cha) { $toup = rand(0, 1); if($toup == 1){ $atCase .= ucfirst($cha); } else { $atCase .= $cha;} } $rtnstr = $atCase; 嗯,只是我的
$arr_str = str_split("w2abcd");
$atCase = "";
foreach ($arr_str as $cha) {
$toup = rand(0, 1);
if($toup == 1){ $atCase .= ucfirst($cha); } else { $atCase .= $cha;}
}
$rtnstr = $atCase;
嗯,只是我的变体:
<?php
$str = str_split(strtolower('some text'));
foreach ($str as &$char)
{
if (rand(0, 1)) $char = strtoupper($char);
}
print implode('', $str);
好吧,只是我的变体:
<?php
$str = str_split(strtolower('some text'));
foreach ($str as &$char)
{
if (rand(0, 1)) $char = strtoupper($char);
}
print implode('', $str);
看起来不错。优化可能如下所示:
$str = "w2abcd";
for ($i=0,$c=strlen($str);$i<$c;$i++)
$str[$i] = rand(0, 100) > 50?$strtoupper($str[$i]):$str[$i];
return $str;
$str=“w2abcd”;
对于($i=0,$c=strlen($str);$i 50?$strtoupper($str[$i]):$str[$i];
返回$str;
看起来不错。优化可能如下所示:
$str = "w2abcd";
for ($i=0,$c=strlen($str);$i<$c;$i++)
$str[$i] = rand(0, 100) > 50?$strtoupper($str[$i]):$str[$i];
return $str;
$str=“w2abcd”;
对于($i=0,$c=strlen($str);$i 50?$strtoupper($str[$i]):$str[$i];
返回$str;
我发现您的方式在呼叫时稍微快一点,但对于更高的呼叫,如1000+数组str_split会更快。@david,您使用什么来检查速度?@SamiAl Subhi我有时使用and(ab)apache基准测试工具我发现您的方式在调用时稍微快一点,但对于更高的调用,如1000+数组str_split则更快。@david您使用什么来检查速度?@SamiAl Subhi我有时使用和(ab)apache基准测试工具