Я хочу сделать из слова "dsafasd".
d
s
a
f
ds
sd
dsa
asd
dsaf
fsad
dsafa
afasd
etc..
Пока последнее слово не будет "dsafasd".
Таким образом, последовательность будет такой в строковой позиции
0
1
2
3
01
65
012
654
0123
6543
01234
65432
etc..
До последнего слова 0123456 в строке.
На первом этапе будет напечатана 1 буква слева направо от середины.
На втором этапе будет напечатано 2 буквы слева ивправо.
На третьем этапе он напечатает 3 буквы слева и справа.
Этот этап будет продолжаться до тех пор, пока в результате не будет напечатано то же слово, что и введенное слово.
Моя проблема в том, что я не знаюНе знаю, как сделать приращение от f
до ds
, sd
до dsa
и так далее. Я знаю, что мне нужно 1 или более for
для длины внутри substr($word,$i,1)
и 2 или более if
для идентификации. Мне нужно остановиться на этой длине, перейти к длине + 1 и распечатать их вперед и назад, но я неЯ не знаю, как критерии или логика в нем.
Вот некоторые мысли в моей голове:
$a = "dsafasd";
$b = strlen($a);
$c = ($lengthWord+1)/2;
$i=0;
$h=1;
do {
do {
echo substr($a,$i,$h),"<br>";
$i++;
} while ($i!=$c);#First Phase ends here
$h++;
$i=0;
echo substr($a,$i,$h),"<br>";
echo strrev(substr($a,$i,$h)),"<br>";
} while ($h<!=$b);
И получается:
d
s
a
f
ds
sd
ds <--
sa <--
af <--
fa <--
dsa
asd
dsa <--
saf <--
afa <--
fas <--
dsaf
fasd
dsaf <--
safa <--
afas <--
fasd <--
dsafa
afasd
dsafa <--
safas <--
afasd <--
fasd <--
dsafas
safasd
dsafas <--
safasd <--
afasd <--
fasd <--
dsafasd
dsafasd <--
Я не могу остановить его после того, как было развернуто 2-е слово и двойное слово в последней последовательности. Которые делают слова на моих отметках <--
не должно существовать.