假设我有这样的输入:
<input type="hidden" name="block-1" value="001"/>
<input type="hidden" name="block-2" value="012"/>
<input type="hidden" name="block-3" value="002"/>
<input type="hidden" name="block-4" value="005"/>
<input type="hidden" name="block-5" value="008"/>我想使用这个PHP循环来处理这些输入
$i = 1;
do {
$x = 'block-'.$i;
$webBlock = $_POST[$x];
//some codes here
$i++;
}
while (!empty($webBlock));为什么我总是有6个输出?最后一个是空白输出。似乎循环总是在做n+1。如何根据给定的输入数量来制作正确的循环?谢谢!
发布于 2012-10-19 19:16:33
您需要while吗
我会这么说:
$i=0;
foreach($_POST as $name => $value)
{
if( strpos($name , 'block-') !== false ) echo $i . " - " . $name . ": " . $value;
$i++;
}我认为这应该考虑到名为'block-n‘的项目。if语句基本上是这样说的:“如果block-出现在字段名称中的任何位置,则回显某某”。如果你得到一个错误,请让我知道,并将纠正。
发布于 2012-10-19 19:13:39
试试这个:
$i = 0;
do {
$i++;
$x = 'block-'.$i;
$webBlock = $_POST[$x];
//some codes here
}
while (!empty($webBlock));更新:最好的方法是:
for ($i = 1; $i <= count($_POST); $i++) {
$webBlock = $_POST['block-'.$i];
//some code here
}发布于 2012-10-19 19:13:59
因为您使用的是repeat循环,所以应该使用while循环:
while (!empty($webBlock)){
$x = 'block-'.$i;
$webBlock = $_POST[$x];
//some codes here
$i++;
}https://stackoverflow.com/questions/12972994
复制相似问题