Эти петли не работают должным образом - PullRequest
0 голосов
/ 20 ноября 2011

Я работаю с тем же циклом уже пару дней, и он все равно не будет работать так, как я этого хочу.Я пробовал оба for, foreach и while, и он все еще отказывается работать.

Код, который не будет работать, просто:

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

Если deleteT имеет два значения: 'Bob'и «Джо» напечатает:

Banned Joe
Banned

Кто-нибудь знает, почему это происходит?

Ответы [ 2 ]

2 голосов
/ 20 ноября 2011

Начните индекс вашего цикла с $pi = 0; и только цикл пока $pi < $d.

1 голос
/ 20 ноября 2011

Я думаю, что одна из ваших проблем связана с оператором count, а затем с условием <= в цикле for.

Если вы используете 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
}
...