在不使用任何字符串函数

时间:2015-12-22 12:24:24

标签: php

在昨天的采访中,我被问到如何使用任何字符串函数(如strrev()或strlen())来反转字符串。我在网站上找到了这个例子,但它给出了错误。如果没有strlen(),我可以做到这一点。

  

未初始化的字符串偏移量:-1英寸   第xx行的D:\ xampp \ htdocs \ PhpProject1 \ index.php

$string = "ZEESHAN";

$i =0;

while(($string[$i])!=null){

        $i++;

}

$i--;

while(($string[$i])!=null){

        echo $string[$i];

$i--;

}

12 个答案:

答案 0 :(得分:8)

$string = 'zeeshan';
$reverse = '';
$i = 0;
while(!empty($string[$i])){ 
      $reverse = $string[$i].$reverse; 
      $i++;
}
echo $reverse;

答案 1 :(得分:2)

我为字符串反转创建了一个简单的逻辑

$str = 'ABCD';
$strReversed = '';
$length = strlen($str);
for($i=$length-1; $i >= 0; $i--){
    $strReversed .= $str[$i];
}
echo $strReversed;

答案 2 :(得分:1)

尝试 -

$string = "ZEESHAN";

$j = 0;
while(!empty($string[$j])) {
   $j++;
}

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

<强>输出

NAHSEEZ

答案 3 :(得分:0)

你可以这样做

$string = "heya";
$i = strlen("heya") - 1;
$newStr = "";

while($i >= 0) {
    $newStr .= $string[$i];
    $i--;
}
echo $newStr; // output: ayeh

答案 4 :(得分:0)

您可以使用count_charsarray_sum

进行试用
<?php

$string = "ZEESHAN";
$count=array_sum(count_chars($string));

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

如果您不想要任何php字符串函数,可以使用krsortarray尝试这种方式:

<?php

$string = "ZEESHAN";
$arr = array();
$i=0;
while(isset($string[$i])){
        $arr[$i] = $string[$i];
        $i++;
}
krsort($arr);
$final = implode("",$arr);

var_dump($final);
?>

答案 5 :(得分:0)

您可以像{/ p>一样使用whilefor循环

$string = "ZEESHAN";
$reverse = "";
$j = 0;
while(isset($string[$j])){
    $j++;
}

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

答案 6 :(得分:0)

请看下面的代码:反转字符串

$str = 'abcdefg';
    $reverseString = '';
    for($i=strlen($str);$i<=strlen($str);$i--){
      $reverseString .= $str[$i];
    if($i==0)
    break;
    }

    echo $reverseString;

以上代码输出为:

gfedcba

答案 7 :(得分:0)

//Program for reversing a string
<?php
class str_rev{
    public function Revese_Str($string){
        $reverse = '';
        $i=0;
        while(!empty($string[$i])){ 
          $reverse = $string[$i].$reverse; 
          $i++;
        }
        return $reverse;
    }
}
$object = new str_rev();
echo $object->Revese_Str('Ayush Jain');

答案 8 :(得分:0)

还有另一种方法可以做到这一点,即“递归”

<?php
/*
 String reverse without using functions and loop conditions
*/
$str = 'Hello World!';
echo rev($str);
function rev($str)
{  
  $len = strlen($str);
  /* Base case for recursion */
  if($len == 1 ){
    return $str;      
  }else{
    $len--; 
    /* extract last character and concatenate at end of string
      returned from recursive call on remaining string               
    */        
    return substr($str,$len) . rev(substr($str,0,$len));           

  }
}

答案 9 :(得分:0)

<?php
$string = 'ZEESHAN';
$reverse = '';
$i = 0;
while(!empty($string[$i])){
    $reverse = $string[$i].$reverse;
    $i++;
}
echo $reverse;
?>

检查完整的帖子:https://www.troposal.com/reverse-string-without-function-php/

答案 10 :(得分:0)

检查此代码可解决此问题。

<?php

$string = "ZEESHAN";

$i =0;

while(!empty($string[$i])){ 
       
        $i++;
}

$i--;

while(!empty($string[$i])){     

        echo $string[$i];

$i--;

}

?>

答案 11 :(得分:-1)

<!doctype html>
<html>
  <body>
    <center>
      <form action="#" method="get">
        <br>
        <input type="text" name="txt"/>
        <br><br>
        <input type="submit" name="submit"/>
        <br><br>
      </form>
<?php
if(isset($_GET["submit"])) {
    $name = $_GET["txt"];
    for ($i = 0; isset($name[$i]); $i++) {
        $j = $i;
    }
    for ($k = $j; isset($name[$k]); $k--) {
        echo $name[$k];
    }
}