Я озадачен проблемой в моем коде и надеюсь, что кто-то еще может помочь мне пролить свет на то, почему мой цикл пропускает первый элемент (array[0])
массива.для цикла, не обрабатывающего первый элемент массива
Кодекс
foreach ($a as $key => $val) {
for ($i=0; $i<count($val); $i++) {
$x = $i; //this helps me jump logical arguments without the use of else
// First Test
if (isset($val[$i+2]) && $x = $i) {
//Do a bunch of stuff
if (isset(the stuff done above)) {
// do other things and reset $i to jump through the array
$i=$i+2;
}
else {
unset($things);
unset($otherthings);
}
}
}
// Second Test
if (isset($val[$i+1]) && $x = $i) {
//Do a bunch of stuff
if (isset(the stuff done above)) {
// do other things and reset $i to jump through the array
$i=$i+1;
}
else {
unset($things);
unset($otherthings);
}
}
}
// Third and final test
if ($x = $i) {
//do other things
}
}
}
Проблема
Я не могу понять, почему, но цикл или IF
заявления (я не уверен на 100%, который один) не работать через первый элемент массива [0].
Он прекрасно работает из массива [1] вперед, но даже если я испытал, что $x
действительно = к $i
и поэтому тест-3, по крайней мере, должно работать, цикл, кажется, бежит один цикл мимо всех IF's
, а затем начните работу с массивом [1].
То, что я пытался
- Я изменил
for ($i=1; $i<$val; $i++)
и это прекрасно работает (например, ничего не опускаем) с самого начала (но, конечно, не решает мою проблему, как я до сих пор отсутствует массив [0]) - Я проверил в коде, если эхо
$val[0]
печатает в начале кода, и это делает - Я также протестировали
$x = $i
и они также работают
Это одна из тех проблем, которые кажутся слишком глупыми, чтобы изменить все в моем коде, но много раз искали переполнение стека и google для подобных проблем. Я не могу понять, почему.
Должно быть что-то не так, я не вижу, как я написал цикл?
В эти моменты я благодарен, смиренен и немного смущен ... все это часть обучения;) Это сделал трюк, спасибо – Jacob
@ Jacob это нормально, мы узнаем о небольших + больших ошибках. :) :) –