Задать вопрос

Задание на позицию php junior. Какой способ решения?

Есть строка: {Пожалуйста,|Просто|Если сможете,} сделайте так, чтобы это {удивительное|крутое|простое|важное|бесполезное} тестовое предложение {изменялось {быстро|мгновенно|оперативно|правильно} случайным образом|менялось каждый раз}.
Необходимо раскрыть фигурные скобки и получить строку. | значит, что допустимо одно из указанных значений, то есть {крутое|простое} значит, что выведется ТОЛЬКО крутое или ТОЛЬКО простое. Вложенные фигурные скобки так же должны раскрываться, значит: {простое|очень {сложное|удачное}} в итоге получим на выходе один из трёх вариантов: "простое", "очень сложное", "очень удачное". Необходимо составить массив со всеми возможными вариантами строки.
  • Вопрос задан
  • 452 просмотра
Подписаться 2 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 3
GavriKos
@GavriKos
Способ решения - сесть и подумать. Потом еще раз подумать. Если не получается - еще раз, и так до победного.

Ну или можете на фрилансе заказать решение. За деньгу. И потом всю работу туда же переадресовывать.
Ответ написан
Комментировать
Вариант первый и он же единственный: научиться писать код.
Поймите, никто не будет за вас делать это задание. Собрались стать джуном? Так садитесь и учитесь решать задачи.
А недопрограммистов и так в достатке.
Ответ написан
Комментировать
vanterbit
@vanterbit Автор вопроса
function random_my($content)
{
  while(strpos($content, "{") !== false)
  {
    $content = preg_replace_callback(
        '/{([^{}]+)}/',
        create_function('$m',
        '$r = $m[1];
        if (strpos($r, "|") === false) return $r;
        $v = explode("|", $r);
        return $v[array_rand($v)];'
      ),
      $content
    );
  }
 
  return $content;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы