我正在研究昵称生成器工具。我有两个带有第一个和第二个音节数组的.json文件。
第一个音节=单词的开头。
第二个音节=单词的结尾。
以下是该工具如何生成随机昵称:
$name = ucwords($first_syllable[rand(0, count($first_syllable) - 1)] . $second_syllable[rand(0, count($second_syllable) - 1)]);
这很好用,但现在我需要检查第一个音节与第二个音节不同。
例如,我在数组中有第一个音节“Dal”,我也有第二个音节“Dal”。我不希望该工具生成“Daldal”。这就是为什么我需要检查第一个音节是否与第二个音节不同。
任何帮助都非常感激。
答案 0 :(得分:4)
检查它们是否相同 -
$name1 = $first_syllable[rand(0, count($first_syllable) - 1)];
$name2 = $second_syllable[rand(0, count($second_syllable) - 1)];
if (strtolower($name1) !== strtolower($name2)) {
$name = ucwords($name1 . $name2);
}
答案 1 :(得分:1)
$firstS = ucwords($first_syllable[rand(0, count($first_syllable) - 1)]);
$secondS = ucwords($second_syllable[rand(0, count($second_syllable) - 1)]);
if($firstS != $secondS)
$name = $firstS.$secondS;
答案 2 :(得分:1)
最简单的解决方案是将所选值存储在变量中,然后循环直到它们不同。
循环将确保您的两个值不同。
代码示例(未测试):
<?php
$second_syllable_value = '';
$first_syllable_value = '';
while ($second_syllable_value == $first_syllable_value)
{
$first_syllable_value = $second_syllable[rand(0, count($second_syllable) - 1)];
$second_syllable_value = $second_syllable[rand(0, count($second_syllable) - 1)];
}
?>
小心数组长度,因为你可能会陷入无限循环。