如何在PHP中创建一个Spinner?

时间:2017-11-15 08:29:42

标签: php spinner

我有问题,希望你帮助我。

我有一个代码:

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

我想使用 $ b 随机显示 $ a ,如下所示:

A b C D EE

AA B C D e

A b C D EEE ...

这意味着:

  

A 替换为 A a AA

     

B 替换为 B b BB

     

     

E 替换为 E e EEE

我希望你理解并帮助我,谢谢你! < 3

1 个答案:

答案 0 :(得分:0)

如果你没有坚持$ 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.你可以很容易地适应排除。