PHP字符串反转而不使用额外的内存

时间:2013-09-27 16:26:51

标签: php

如何在不使用任何额外内存变量的情况下将$ str =“hello \ n”转换为“olleh \ n”?

我查找了预建的功能,但是他们都使用内存,而且,我认为字符串是不可变的,所以基本上可以在没有任何调整的情况下完成或创建新字符串是唯一的选择吗?

3 个答案:

答案 0 :(得分:3)

我不认为PHP中的任何内容都是不可变的。 所以

$str = strrev($str);

可能有用。

害怕微优化,因为它需要你所有的时间,因为没有真正的结果! :)

答案 1 :(得分:3)

我可能会忽略某些内容,但如果你的所有行都以\n结尾,我认为这可能是最简短的方法:

$str = strrev( trim( $str ) ) . "\n";

我不确定涉及多少内存。

答案 2 :(得分:0)

你在这里说多少'额外记忆'? PHP有一个简洁的功能来为您翻转字符串:strrev()

只需使用

$str = strrev($string);

如果你真的想要你可以编写一个循环来做几乎相同的事情,但那会使用内存。

<?php
            $string = trim("Some Random string");
            // string length
            $len = strlen($string);
            // make string array
            $stringExp = str_split($string);
            // Loop through and print backwards
            for ($i = $len - 1; $i >= 0; $i--) {
                echo $stringExp[$i];
            }
            ?>