【发布时间】:2012-04-07 05:09:51
【问题描述】:
我有一个包含很多不同数字的字符串。我正在尝试创建一个新的随机数并将其添加到字符串中。
我需要帮助的部分是“如果该数字已存在于字符串中,则创建一个新的随机数,并继续这样做,直到创建一个字符串中尚不存在的数字”。
// $string contains all the numbers separated by a comma
$random = rand(5, 15);
$existing = strpos($string, $random);
if ($existing !== false) { $random = rand(5, 15); }
$new_string = $string.",".$random;
我知道这不太正确,因为它只会检查它是否存在一次。我需要它继续检查以确保字符串中不存在随机数。我使用while循环吗?我该如何改变它才能正常工作?
非常感谢您的帮助。
【问题讨论】:
-
你需要它是一个字符串吗?这使得它比需要的复杂得多。
-
我已经将它简化为张贴在这里,但字符串包含一个mysql行的值。
-
rand(5, 15)是示例还是随机数的实际范围? -
请注意,您应该改用
mt_rand(),因为rand()不是那么随机,并且平均而言,连续重复相同的数字比 mt_rand 多,这意味着它可以/可能通过丢失浪费的迭代来加速循环。
标签: php string loops random while-loop