用php反转字符串

用php反转字符串,php,string,reverse,Php,String,Reverse,我正试图找到一种方法来反转字符串,我已经看到了一些替代方法,但我想用这种方法,跳出框框思考,不使用任何其他人的代码作为替代方法,下面的代码反转字符串,但我一直遇到这个错误: 注意:第15行C:\wamp\www\test\index.php中未定义的偏移量:25 25是正在进行增量计算的字符串的长度 //error_reporting(NULL); $string = trim("This is a reversed string"); //find length of string incl

我正试图找到一种方法来反转字符串,我已经看到了一些替代方法,但我想用这种方法,跳出框框思考,不使用任何其他人的代码作为替代方法,下面的代码反转字符串,但我一直遇到这个错误:

注意:第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];
}

提前感谢

如果您太努力了,请在“重新发明轮子”之前,始终查阅手册和/或搜索引擎,检查是否有本机功能可以完成您想要的功能:

strev-反转字符串


由于索引从0开始,请将for循环更改为

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

您必须获得
$len-1
,因为字符串从
0
$len-1

有一个函数用于此

,正如其他人所说,有
strev()
来完成此操作

如果你想自己构建它(为了学习?):你的问题是你的索引太高了——长度为25的字符串的索引从0到24,所以你的循环必须如下所示:

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

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

使用strev php函数


//输出:gnirts DESRIVER a si sihT

您可以使用它:

echo $reversed_s = join(' ',array_reverse(explode(' ',"Hello World")));
公共函数stringReverse($string=“Jai mata di”) { $length=strlen($string)-1; $i=0; 而($i<$length+1){ echo$string[$length-$i]; $i++; } }
我们可以在以下方法的帮助下进行字符串反转

  • 第一种方法:

    echo strrev($string);
    
     $stringSplit = str_split($string);
                for ($i = $len-1; $i >=0;$i--)
                {
                echo $stringSplit[$i];
                }
    
  • 第二种方法:

    echo strrev($string);
    
     $stringSplit = str_split($string);
                for ($i = $len-1; $i >=0;$i--)
                {
                echo $stringSplit[$i];
                }
    
  • 这会奏效的

    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);
        }
    }
    
    
    

    字符串索引从0开始,因此第25个字符的索引是24。更改代码,使$i从24变为0。正如许多海报在下面回答的那样,您还应该在PHP函数库中寻找一个函数来完成您需要的功能。谢谢,我偶然发现0被算作一个函数,是的,有一些库可以做到这一点,但我想尝试在没有它们的情况下以不同的方式完成;-)我在这里添加了关于您问题的答案。根据需要随时调整。谢谢谢谢,这就是我出错的地方,我忘记了0,它是计算的,所以当对长度进行累加时,它寻找的是25,但不存在,是的,我知道strev是可用的,但我尝试在不依赖预构建函数的情况下实现它。你让我免于头痛:-)谢谢是的strrev是一种简单的方法,但我一直在尝试有条理地解决它(很长的一段路)这是为了我今天的一次面试。正如oezi上面提到的,我想要的正是有24个数组键而不是25个,干杯在utf8字符串上使用strev时要小心!
    <?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;
    
    $string = 'mystring';
    $length = strlen($string);
    
    for ($i = $length; $i > 0; $i--){
    echo $string[$i-1];
    }
    
    OUTPUT: gnirtsym
    
    echo $reversed_s = join(' ',array_reverse(explode(' ',"Hello World")));
    
    public function stringReverse($string="Jai mata di")
    {
        $length = strlen($string) - 1;
        $i = 0;
        while ($i < $length + 1) {
            echo $string[$length - $i];
            $i++;
    
        }
    }
    
        $string = "Hello world!";
    
    echo strrev($string);
    
     $stringSplit = str_split($string);
                for ($i = $len-1; $i >=0;$i--)
                {
                echo $stringSplit[$i];
                }
    
    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);
        }
    }
    
    <?php
    /* Reverse a string with php */
    echo strrev("Hello World!"); 
    ?>