我正在尝试找到一种反转字符串的方法,我已经看到了替代方案,但我想以这种方式跳出框框思考,而不是使用其他人的代码作为替代方案,下面的代码反转了字符串,但我不断得到这个错误:
注意:未定义的偏移量:C:\wamp\www est\index.php 第 15 行中的 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];
}
提前致谢
你太努力了,在你最终“重新发明轮子”之前,一定要查阅手册和/或搜索引擎来检查是否有本机函数可以做你想做的事情:
strrev — 反转字符串
http://php.net/manual/en/function.strrev.php
$string = "This is a reversed string";
echo strrev($string);
// Output: gnirts desrever a si sihT
正如其他人所说,有
strrev()
可以做到这一点。
如果你想自己构建它(为了学习?):你的问题是你的索引太高了 - 长度为 25 的字符串索引从 0 到 24,所以你的循环必须看起来像这个:
for ($i = $len - 1; $i >=0;$i--)
{
echo $stringExp[$i];
}
$string = 'mystring';
$length = strlen($string);
for ($i = $length; $i > 0; $i--){
echo $string[$i-1];
}
OUTPUT: gnirtsym
您必须得到
$len-1
,因为字符串从 0
开始到 $len-1
有一个函数可以实现这个功能strrev
echo strrev("This is a reversed string!");
php 在字符串功能方面相当完整,您只需要传递字符串即可。这就是为什么 php 很简单:)
使用 strrev PHP 函数 https://www.php.net/manual/en/function.strrev.php
<?php
echo strrev("This is a reversed string");
?>
// Output: gnirts desrever a si sihT
<?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
for ($i = $len-1; $i >=0;$i--)
{
echo $stringExp[$i];
}
由于索引从 0 开始
将 for 循环更改为
for ($i = $len-1; $i >=0;$i--)
{
echo $stringExp[$i];
}
你可以使用它:
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!");
?>
如果您想在线查看,请通过 https://talktogeeks.com/stringify.php