我接受了一次采访,一个看似非常简单的问题没有点击我的想法。只是想得到它的答案,因为已经尝试了很多,无法找到解决方案。
我必须在对面写一个句子,如
input => My Name Is Junaid
output => Junaid Is Name My
不应该使用PHP的任何内置函数
由于
修改
我做到了这个
$string = "My Name Is Junaid";
$len = strlen($string);
for($i=$len; $i > 0; $i--){
echo $string[$i-1];
}
结果
dianuJ sI emaN yM
需要更多调整
答案 0 :(得分:10)
<?php
$str = "My Name is Fred";
$i = 0;
while( $d = $str[$i] )
{
if( $d == " "){
$out = " ".$temp.$out;
$temp = "";
}else{
$temp.=$d;
}
$i++;
}
echo $temp.$out;
?>
答案 1 :(得分:6)
试试这个:
$str = 'My name is James';
$str_arr = explode(' ',$str);
$i=0;
for($i=(count($str_arr)-1);$i>=0;$i--){
echo $str_arr[$i].' ';
}
答案 2 :(得分:2)
<?php
$name = 'shashank is a good boy';
$i = 0;
while($name[$i] != '')
{
$i++;
}
$len = $i;
for ($j=$len; $j>0; $j--){
echo $name[$j-1];
}
?>
答案 3 :(得分:1)
实际上,使用控制结构是可能的。没有strlen也是。它只会产生一个通知级错误。
我很确定它可以做得更好,但这里是快速解决方案,没有任何PHP功能,只是控制结构。
$string = 'My Name Is Junaid';
$i = 0;
$output = array('');
$output_index = 1;
while (true) {
$char = $string{$i};
$i++;
if ($char == ' ') {
$output[$output_index] = '';
$output_index++;
} elseif ($char === '') {
break;
} else {
$output[$output_index - 1] .= $char;
}
}
for ($i = $output_index; $i--; $i >= 0) {
echo $output[$i];
echo ' ';
}
答案 4 :(得分:0)
试试这个:
function reverse_string($str) {
while ($str[$i]) {
if ($str[$i] != '~') {
$rstr = $str[$i] . $rstr;
$str[$i] = '~';
}
++$i;
}
return $rstr;
}
答案 5 :(得分:0)
<?php
$rev = array("vignesh");
foreach ($rev as $name)
{
echo $name[6];
echo $name[5];
echo $name[4];
echo $name[3];
echo $name[2];
echo $name[1];
echo $name[0];
}
?>
hsengiv
答案 6 :(得分:0)
通过这种方式,您可以减少循环次数,从而节省性能效率
<?php
$str = "My Name is Aman jain";
$p = explode(' ',$str);
for ($i= (count($p)-1); $i >= 0 ; $i--) {
echo $p[$i]. ' ';
}
答案 7 :(得分:0)
请检查:
$str = "NAHUAHC PATARP NAMUSNA si eman YM";
$reverseStr = "";
$length = 0;
while (isset($str[$length])) {
$reverseStr = $str[$length] . $reverseStr;
$length++;
}
print $reverseStr;
echo "\n";
答案 8 :(得分:0)
请看下面的代码:反转字符串
$str = 'abcdefg';
$reverseString = '';
for($i=strlen($str);$i<=strlen($str);$i--){
$reverseString .= $str[$i];
if($i==0)
break;
}
echo $reverseString;
以上代码输出为:
gfedcba
答案 9 :(得分:-2)
通过字符(使用[])搜索空格(或任何白色字符)从末尾向输入字符迭代。如果找到一个,保存位置。找到第二个时,将两个位置之间的字符添加到输出中。如果您还可以使用strlen
:
substr
<?php
$input = "My Name Is Junaid";
$output = "";
$lastpos = strlen($input);
for ($i = strlen($input) - 1; $i >= 0; $i--) {
if ($input[$i] == ' ') {
if (strlen($output) > 0) $output .= ' ';
$output .= substr($input, $i + 1, $lastpos - $i);
$lastpos = $i;
}
}
echo $output;
答案 10 :(得分:-2)
您可以使用for循环
来反转整个字符串$str2 = '';
for($i=0;$i<strlen($str);$i++)
$str2 .= $str[strlen($str)-$i-1];
然后,查找每个单词(在空格之间),并使用相同的算法反转它们。