我正在尝试为数字指定文字。到目前为止,我设法做的是PHP每次刷新/打开页面时成功生成10个随机数。我现在要做的就是为每个数字分配一个文本值。例如,1 = Bob 2 = Jim 3 = Alice等。我已经看到很多人想知道如何以文本形式获取数字(即"一个" = 1,&# 34; 2" = 2等),但我见过的方法并不适用于此。
我到目前为止的代码如下:
<?php
$name = array();
// build a list of ten numbers...
for ($i = 0; $i < 10; $i++) {
// get a 'new' number...
do {
$number = rand(1,10);
} while (in_array($number, $name));
$name[] = $number;
}
echo 'Results:', "\n".join($name, "\n");
?>
目前,我的代码输出10个1到10之间的随机数,只输出每个数字一次,并且该范围内的每个数字每次都有100%的可能性输出。这很重要,因为此代码的目的是用作随机名称生成器。还有其他方法可以做到这一点,但我尝试过的方法往往不符合这一要求。
甚至可能有一种更简单的方法。
有人可以帮忙吗?我还在努力学习PHP:)
由于
答案 0 :(得分:0)
你在找这样的东西吗?
$source = array(1 => "Bob", 2 => "Jim", 3 => "Alice", 4 => "Roman", 5 => "Wiliam", 6 => "Kenneth", 7 => "John", 8 => "Mark", 9 => "Richard", 10 => "Peter");
$name = array();
$numbers = array();
// build a list of ten numbers...
for ($i = 0; $i < 10; $i++) {
// get a 'new' number...
do {
$number = rand(1,10);
} while (in_array($number, $numbers));
$numbers[] = $number;
$name[] = $source[$number];
}
echo join($name, "\n");
数组$ source的每个名称在输出中都有一次。
答案 1 :(得分:0)
如果它只是您需要的随机命名顺序,则可以使用shuffle
:
$names = array("Bob","Fred","Tony","Jim");
shuffle($names);
print_r($names);