我一直在寻找我的问题解决方案多年,我仍然没有找到它所以我决定创建一个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',但我似乎无法使其正常工作
有谁知道我做错了什么,或者有什么代码可以做到这一点?
答案 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)
。