我想将循环数据输出到forloop,但我只获得一个值
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="test[]" multiple="multiple">
<option value="test">test</option>
<option value="mytesting">mytesting</option>
<option value="testingvalue">testingvalue</option>
</select>
<input type="submit" value="Send" />
</form>
<?php
$test=$_POST['test'];
for($i=0;$i<count($test);$i++)
{
$tyy = $test[$i];
}
?>
我希望在循环中获得$ tyy
我希望循环数据输出旁边forloop我只得到一个值
答案 0 :(得分:1)
这是因为你每次迭代都会重新分配它。所以改变这一行:
$tyy[] = $test[$i];
//^^ See here, Now you are assign the value to a new array element every iteration
这样你就有了一个可以在以后使用的数组
旁注:
1。您知道在$test
中已有一个包含此数据的数组吗?但是如果你想把所有数据都作为一个字符串,你可以使用它(没有for循环):
$tyy = implode(", ", $test);
2。 $_SERVER["PHP_SELF"]
只是您网址的反映,因此对XSS开放。您可以使用它来保存:
<?= htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, "utf-8"); ?>
答案 1 :(得分:1)
试试这个..
$groupStr = "";
for($i=0; $i< count($test); $i++)
{
$groupStr .= $test[$i];
}
echo $groupStr;
答案 2 :(得分:0)
使用此
$tyy[] = $test[$i];
或者您可以使用此
连接值$tyy = "";
for($i=0;$i<count($test);$i++)
{
$tyy .= $test[$i];
}
print_r($tyy)
答案 3 :(得分:0)
使用$ tyy作为数组,并使用array_push方法在for循环中填充该数组。
$tyy = array();
$test=$_POST['test'];
for($i=0;$i<count($test);$i++)
{
array_push($tyy, $test[$i]);
}
答案 4 :(得分:0)
您创建了一个单个变量,每次循环时都会被覆盖,因此只能获得一个值。
如果要访问所有值,则需要保存到数组而不是单个变量,或将所有值附加到一个值
或者
//create an array of values in $tyy
$tyy = $_POST['test'];
//you can now access $tyy by looping through it.
或
$test = $_POST['test'];
$for($i = 0; $i<count($test); $i++)
{
//list all the values with commas separating them.
$tyy .= $test[$i].", ";
}
//view the contents by echoing it.
echo $tyy;
答案 5 :(得分:-1)
但是你为什么要使用循环来发布数据。 你的$ _POST ['test']是自我数组,因此你可以在没有for循环的情况下使用它。 $ array = $ _POST ['test']; 试试这个。