Строка перевернуть по-другому

0

Я ищу функцию, которая может изменить строку по-другому. он всегда должен принимать последний и первый символ строки. В примере строка

123456

должен стать

615243

Есть ли какая-либо функция php?

РЕДАКТИРОВАТЬ

Это мой код до сих пор

$mystring = "1234";

$start = 0;
$end = strlen($mystring);
$direction = 1;

$new_str = '';

while ($start === $end) {
    if ($direction == 0) {
        $new_str .= substr($mystring, $start, 1);
        $start++;
        $direction = 1;
    } else {
        $new_str .= substr($mystring, $end, -1);
        $end--;
        $direction = 0;
    }
}
  • 1
    Вы что-нибудь пробовали или нам просто написать ваш код ?!
  • 0
    Я думаю, что 615243 должно быть 654321? Пожалуйста, будьте более ясны.
Показать ещё 6 комментариев
Теги:
string

3 ответа

3
Лучший ответ

Я не мог с собой поделать, мне просто пришлось написать свой код для вас...

Это просто берет вашу строку, разбивает ее на массив, а затем создает вашу выходную строку с буквами спереди и сзади.

$output = '';
$input = str_split('123456');
$length = count($input);

while(strlen($output) < $length) {
    $currLength = strlen($output);
    if($currLength % 2 === 1) {
        $output .= array_shift($input);
    }
    else {
        $output .= array_pop($input);
    }
}

echo $output;

Пример: http://ideone.com/Xyd0z6

  • 0
    У меня была такая же идея :) eval.in/270019
3

Не очень отличается от ответа Скопей на цикл for:

$str = '123456';

$result = '';

$arr = str_split($str);

for ($i=0; $arr; $i++) {
    $result .= $i % 2 ? array_shift($arr) : array_pop($arr);
}

echo $result;
1

Это должно сработать для вас:

<?php

    $str = "123456";
    $rev = "";

    $first = substr($str, 0, strlen($str)/2); 
    $last = strrev(substr($str, strlen($str)/2));
    $max = strlen($first) > strlen($last) ? strlen($first): strlen($last);

    for($count = 0; $count < $max; $count++)
        $rev .= (isset($last[$count])?$last[$count]:"" ) . (isset($first[$count])?$first[$count]: "");

    echo $rev;

?>

Вывод:

615243

Ещё вопросы

Сообщество Overcoder
Наверх
Меню