2011-11-19 99 views
0

我已经几天同一回路现在的工作,它仍然无法工作,我希望它的方式。我已经尝试过,但是仍然拒绝工作。这些循环不能正常工作

是行不通的代码很简单:

if(!empty($_POST['submit'])){ 
     $d = count($_POST['deleteT']); 
     for ($pi = 1; $pi <= $d; $pi++) { 
     echo "Banned ".$_POST['deleteT'][$pi]."</br>"; 
     } 
    } 

如果deleteT有两个值:“鲍勃”和“乔”,它会打印:

Banned Joe 
Banned 

有没有人有任何见解进入为什么这是继续?

+0

您是否尝试将索引从0开始? ;)您还需要将<=转换为<。你也可以把$ PI-1在你的回声线,它会做同样的事情 – malletjo

+0

foreach循环是在这种情况下要好得多,因为$ _ POST是一个关联数组,而不是一个索引数组.. – yoavmatchulsky

回答

2

$pi = 0;同时$pi < $d只有循环启动循环索引。

+0

谢谢!不能相信我错过了... –

1

我想你的问题之一是在count语句,然后在该<=条件循环。

如果使用count(),那么就使用<。例如:

$c = count($my_array); 
for ($i = 0; $i < $c; $i++) { 
// do stuff 
} 

也就是说,迭代数组的更简单的方法是使用foreach。像这样:

foreach ($my_array as $key => $val) { 
// do stuff with $val or $key 
}