将特定文本分配给数字

时间:2014-01-15 16:13:17

标签: php string random numbers output

我正在尝试为数字指定文字。到目前为止,我设法做的是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:)

由于

2 个答案:

答案 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);