Задача Вывести на экран строку “Hello World!” так чтоб в каждой паре символов они поменялись местами. В итоге должно получиться “eHll ooWlr!d” Помогите сделать ( [хорошо б с коментами) буду благодарен
PHP: $string = 'Hello World'; for($i=0;$i<strlen($string);$i++){ for($i=0;$i<strlen($string);$i++){ if(вот тут не знаю какое условие){ } } }
А, ну понятно. Основы алгоритмизации программирования проходят в школьном курсе. Мы все в этой жизни делаем алгоритмами. Я очень люблю приводить пример с приготовлением чая. Налил воды, поставил на огонь, дождался закипания, налил в чашку, размешал сахар. Что я пропустил? Заварку. Ошибка выполнения программы. Программирование лишь реализация алгоритма лексемами какого-то языка. Можно открыть мануал, ознакомиться со списком всех доступных функций и подумать как их можно применить. Все эти функции - кирпичики. Здание из них строить тебе - программисту. Вот тебе для примера три простеньких варианта решения твоей задачи: Вариант1. Через разворот подстроки. PHP: <?php // готовим входные строки четной и нечетной длины $str0 = "Hello World!"; $str1 = "Hello World"; // объявляем функцию function WhileSubstrStrrev ($str) { // пустая временная строка $out = ''; // текущий отступ итерации $offset = 0; // лимит отступа итерации (не более длины строки) $limit = strlen($str); // пока отступ не более лимита while ($offset < $limit) { // хватаем из строки два символа начиная с отступа // полученную строку из двух символов разворачиваем // и конкатенируем к временной переменной $out .= strrev(substr($str, $offset, 2)); // увеличиваем отступ на два символа $offset += 2; } // возвращаем результат return $out; } // выполняем для строки четной длины var_dump(WhileSubstrStrrev($str0)); // выполняем для строки нечетной длины var_dump(WhileSubstrStrrev($str1)); Код (Text): string(12) "eHll ooWlr!d" string(11) "eHll ooWlrd" Вариант2. Через разбивку строки в посимвольный массив. PHP: <?php // готовим входные строки четной и нечетной длины $str0 = "Hello World!"; $str1 = "Hello World"; // объявляем функцию function ArrayShift ($str) { // пустая временная строка $out = ''; // разбиваем строку в массив по одному символу $tmp = str_split($str); // пока шифт возвращает значения while (null !== $char = array_shift($tmp)) { // конкатенируем к временной строке результат выполнения // еще одного шифта и потом конкатенируем значение // из условия входа в итерацию цикла $out .= array_shift($tmp) . $char; } // возвращаем результат return $out; } // выполняем для строки четной длины var_dump(ArrayShift($str0)); // выполняем для строки нечетной длины var_dump(ArrayShift($str1)); Код (Text): string(12) "eHll ooWlr!d" string(11) "eHll ooWlrd" Вариант3. Через замену по регулярному выражению. PHP: <?php // готовим входные строки четной и нечетной длины $str0 = "Hello World!"; $str1 = "Hello World"; // объявляем функцию function Regex ($str) { // выполняем регулярное выражение "первый символ рядом со вторым символом" и // заменяем по правилу "второе совпадение первое совпадение" // полученую строку возвращаем как результат выполнения функции return preg_replace('~(.)(.)~', '\2\1', $str); } // выполняем для строки четной длины var_dump(Regex($str0)); // выполняем для строки нечетной длины var_dump(Regex($str1)); Код (Text): string(12) "eHll ooWlr!d" string(11) "eHll ooWlrd" Есть и еще различные варианты, но мне так же лениво, как тебе ознакомиться с основами. ЗЫ. Уношу тему в "за меня"
@mr.akv а где там у меня "выпить чай"? Алгоритм же приготовления чая, а не его потребления. Внимательнее
Циклы, IF-ы, переменные... Всё проще: https://php.ru/forum/threads/algoritmy-poleznosti.54173/#post-474964