【问题标题】:How to create a Spinner in PHP?如何在 PHP 中创建 Spinner?
【发布时间】:2018-04-28 09:30:06
【问题描述】:

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

我有一个代码:

$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 替换为 AaAA

B 替换为 BbBB

E 替换为 EeEEE

希望您能理解并帮助我,非常感谢!!!

【问题讨论】:

  • 请参阅:stackoverflow.com/help/how-to-ask。而且我们不会编写您需要的代码。所以请展示你的尝试。
  • 首先,您必须自己动手,向我们展示您尝试过的一些代码。
  • 您好,欢迎来到 SO。您的第一个输出示例:A b C D EE 列出了两个 E,而您的配方规定了 E replace to E, e or EEE。这是一个错误吗?请编辑您的问题以更正。还要添加您以前的工作/尝试和结果,否则您的问题可能会被否决和/或删除。
  • 天啊。我对互联网上的每个教程都进行了多次尝试。但是失败了:(

标签: php spinner


【解决方案1】:

如果你不喜欢 $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。您可以轻松适应排除项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多