4

我正在尝试找到一种反转字符串的方法,我已经看到了替代方案,但我想以这种方式在框外思考而不使用其他任何人的代码作为替代方案,下面的代码反转了字符串,但我不断得到这个错误:

注意:未定义的偏移量:第 15 行 C:\wamp\www\test\index.php 中的 25

25 是正在减量的字符串的长度。

//error_reporting(NULL);
$string = trim("This is a reversed string");

//find length of string including whitespace
$len =strlen($string);

//slipt sting into an array
$stringExp = str_split($string);

//deincriment string and echo out in reverse
for ($i = $len; $i >=0;$i--)
{
echo $stringExp[$i];
}

提前致谢

4

16 回答 16

8

你太努力了,在你最终“重新发明轮子”之前,总是查阅手册和/或搜索引擎来检查是否有本地函数来做你想做的事情:

strrev — 反转字符串

http://php.net/manual/en/function.strrev.php

$string = "This is a reversed string";
echo strrev($string);
// Output: gnirts desrever a si sihT
于 2012-06-19T12:13:15.020 回答
4

正如其他人所说,strrev()必须这样做。

如果您想自己构建它(用于学习?):您的问题是您的索引一开始太高 - 长度为 25 的字符串的索引从 0 到 24,因此您的循环必须看起来像这样:

for ($i = $len - 1; $i >=0;$i--)
{
   echo $stringExp[$i];
}
于 2012-06-19T12:15:30.247 回答
3
$string = 'mystring';
$length = strlen($string);

for ($i = $length; $i > 0; $i--){
echo $string[$i-1];
}

OUTPUT: gnirtsym
于 2013-10-30T17:38:26.260 回答
2

你必须得到$len-1,因为字符串从0to$len-1

于 2012-06-19T12:13:55.120 回答
1

这个strrev有一个函数

于 2012-06-19T12:13:55.270 回答
1
echo strrev("This is a reversed string!"); 
于 2012-06-19T12:15:52.320 回答
1

php 在字符串函数方面非常完整,您只需要传递字符串即可。这就是为什么php很容易:)

使用strrev php 函数http://bg2.php.net/manual/en/function.strrev.php

<?php
  echo strrev("This is a reversed string");
 ?>

// Output: gnirts desrever a si sihT
于 2012-06-19T12:16:19.517 回答
1
<?php
// Reversed string and Number
//  For Example :
    $str = "hello world. This is john duvey";
    $number = 123456789;
    $newStr = strrev($str);
    $newBum = strrev($number);

    echo $newStr;
    echo "<br />";
    echo $newBum;
OUTPUT : 
 first : yevud nhoj si sihT .dlrow olleh
 second: 987654321
于 2013-09-17T13:03:15.097 回答
0
for ($i = $len-1; $i >=0;$i--)
{
  echo $stringExp[$i];
}

由于索引从 0 开始

于 2012-06-19T12:13:47.973 回答
0

将您的 for 循环更改为

for ($i = $len-1; $i >=0;$i--)
{
echo $stringExp[$i];
}
于 2012-06-19T12:13:48.670 回答
0
<?php
echo strrev("PHP TUTORS");
?>

上述脚本的输出

SROTUT PHP

参考源代码

于 2013-04-03T19:04:34.130 回答
0

你可以使用它:

echo $reversed_s = join(' ',array_reverse(explode(' ',"Hello World")));
于 2015-03-10T09:47:19.790 回答
0
public function stringReverse($string="Jai mata di")
{
    $length = strlen($string) - 1;
    $i = 0;
    while ($i < $length + 1) {
        echo $string[$length - $i];
        $i++;

    }
}
于 2015-07-15T18:25:32.093 回答
0

我们可以在以下方法的帮助下进行字符串反转

    $string = "Hello world!";
  1. 第一种方法:

    echo strrev($string);
    
  2. 第二种方法:

     $stringSplit = str_split($string);
                for ($i = $len-1; $i >=0;$i--)
                {
                echo $stringSplit[$i];
                }
    
于 2016-07-04T07:41:15.407 回答
0

这将起作用

class StringUtils {

    public function stringReverse($string){
        $arr1 = str_split($string);
        $arr2 = array();
        for($i = count($arr1); $i >= 0; $i--){
            $arr2[count($arr1) - $i] = $arr1[$i];
        }
        return implode("", $arr2);
    }
}
于 2017-01-26T07:34:17.067 回答
0
<?php
/* Reverse a string with php */
echo strrev("Hello World!"); 
?>

反转字符串php

于 2018-08-16T09:16:14.800 回答