Как создать Spinner в PHP?

У меня проблема, и я надеюсь, что вы мне поможете, пожалуйста.

У меня есть код:

$a = 'A B C D E';
$b = '{A|a|AA}{B|b|BB} {E|e|EEE}';

И я хочу использовать $ б в случайном порядке $ а как это:

A b C D EE

AA B C D e

A b C D EEE ...

Это значит:

заменить на , или же А.А.

В заменить на В, б или же BB

а также

Е заменить на Е, е или же EEE

Я надеюсь, что вы понимаете и помогаете мне, большое спасибо !!! <3

-5

Решение

Если вы не привязаны к формату $ b, вы можете использовать массивы для замены и выбрать случайный элемент для замены.

$placeholders = 'A B C D E';
$substitutes  = [
'A' => ['A','a','AA'],
'B' => ['B','b','BB'],
'E' => ['E','e','EE','EEE'],
];
$replacements = [];
foreach($substitutes as $key => $choices) {
$random_key = array_rand($choices);
$replacements[$key] = $choices[$random_key];
}
$spun = str_replace(
array_keys($replacements),
array_values($replacements),
$placeholders
);
echo $spun;

Пример вывода:

AA b C D EE

Альтернативно (если ваши заменители одинаковы):

function substitute($character) {
$random = rand(0,2);
$string = $random
? str_repeat($character, $random)
: strtolower($character);
return $string;
}

$spun = implode(
' ',
array_map(
'substitute',
['A','B','C','D','E']
)
);
echo $spun;

Но вышеизложенное заменит также C и D. Вы можете легко адаптироваться к исключениям.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]