PHP中如何实现字符串翻转?

发布网友 发布时间:2022-04-06 00:24

我来回答

5个回答

热心网友 时间:2022-04-06 01:54

先说说一下吧:
strrev:这是php原生的翻转函数,但是只能针对于单字节字符组成的字符串进行翻转,比如:abc123,可以使用它翻转成123cba;
对于多字节反转:strrev是不支持的,很明显,我认为这是官方设计上的一种不合理,看官网也没有任何说明;那么我们怎么自己实现包含多字节的字符串翻转呢?我收集了两种办法:
一是使用正则//u这个正则匹配所有unicode字符串,二是使用mb_substr函数
方法一:
$str="学海无涯abc你好世界123";
print_r(join(
"",
array_reverse(preg_split("//u",$str))
));

方法二:
$str = "学海无涯abc你好世界123";
$len = mb_strlen($str,"utf8");
$restr = "";
for($i=$len-1;$i>=0;$i--){
$restr .=mb_substr($str,$i,1,"utf8");
}
echo $restr ;
附:如果以上程序不能允许,自己手敲一遍,这个编辑器会有些特殊字符导致程序没法允许。。

热心网友 时间:2022-04-06 03:12

字符串翻转?是输入'abcdefg'然后输出'gfedcba'吗?
代码:
<?php$str = 'abcdefg';for ($i = strlen($str); $i >= 0; $i--) {echo $str[$i];}?>

热心网友 时间:2022-04-06 04:46

php手册中有,要多看看手册啊。
<?php
echo strrev("Hello world!"); // outputs "!dlrow olleH"
?>

热心网友 时间:2022-04-06 06:38

function demo($str){
$arr=array();
$newStr='';
$arr=str_split($str);
for($i=count($arr)-1;$i>=0;$i--){
$newStr.=$arr[$i];
}
return $newStr;
}

热心网友 时间:2022-04-06 08:46

<?php
$str = "abcdef";
for ($i=1; $i<=strlen($str); $i++){
echo substr($str , -$i , 1);
}
?>

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com