PHP随机文本一次

时间:2013-07-13 15:21:11

标签: php text random

我一直在寻找我的问题解决方案多年,我仍然没有找到它所以我决定创建一个stackoverflow帐户来自己提问。

这是我到目前为止所创造的:

<? //Chooses a random number $num = Rand (1,2);
switch ($num){
case 1: $retrieved_data = "test"; break;
case 2: $retrieved_data = "test1"; break;
} ?> 

这是我希望文本出现的地方;

<form enctype="multipart/form-data" action="upload.php" method="POST">
<input name="<?php echo $retrieved_data; ?>" type="file" />
<input name="<?php echo $retrieved_data; ?>" type="file" />
<input type="submit" value="Upload" /></form>

我的问题是我希望在这些地方随机显示“test1”和“test” 但我希望他们每次都能彼此不同。因此,如果第一个输入类型是“test”,我希望第二个输入类型是'test1',但我似乎无法使其正常工作

有谁知道我做错了什么,或者有什么代码可以做到这一点?

3 个答案:

答案 0 :(得分:3)

如果您的可能性有限,请将它们放在一个数组中,随机播放并移动/弹出元素:

$retrieved_data = array('test', 'test1');
shuffle($retrieved_data);

$random1 = array_shift($retrieved_data);
$random2 = array_shift($retrieved_data);

答案 1 :(得分:0)

步骤A - 您正在选择一个数字,1或2 步骤B - 您通过开关盒运行该号码,此案例仅接收它接收的号码并为其分配值。因此,如果您的号码为1,您的开关案例将以$ retrieve_data =“test”结束。如果你的号码是2你的开关案例转到案例2并且分配$ retrieve_data =“test 1”。 步骤C = $ retrieve_data被分配给您的表单(它只有一个值,“test”或“test1”。

答案 2 :(得分:0)

使用array_rand()

$aName = array('test1', 'test2', 'whatever');

function getRandom(array &$aName)
{
    if (($key = array_rand($aName)) === NULL) {
        throw new Exception('No more randomness!');
    }

    $value = $aName[$key];
    unset($aName[$key]);
    return $value;
}

当您需要数组中的唯一随机项时,只需使用getRandom($aName)