如何获取循环外的循环数据

时间:2015-03-04 09:31:58

标签: php for-loop

我想将循环数据输出到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我只得到一个值

6 个答案:

答案 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']; 试试这个。