Так что я не думаю, что в полной мере использую цикл foreach.Вот как я понимаю foreach.
Это похоже на foreach (arrayyouwanttoloopthrough как onevalueofthatarray)
Счетчик или приращение не требуются, он автоматически вытягиваетмассив, значение за значением в каждом цикле, и для этого цикла он вызывает значение, которое следует после «как».
Останавливается, как только это будет сделано с массивом.
Должно, в основном, заменить «for», при условии работы с массивом.
Так что я пытаюсь многое сделать с foreach, это изменить значения массива вциклический массив.Но в конце я продолжаю находить, что мне нужно использовать цикл for для такого типа вещей.
Итак, допустим, у меня есть массив (thing1, thing2, thing3, thing4), и я хотел его изменить.... скажем всем "BLAH", с числом в конце, я бы сделал
$counter = 0;
foreach($array as $changeval){
$counter++;
$changeval = "BLAH".$counter;
}
Я бы подумал, что это изменит его, потому что $ changeval должен быть любым значением, которое он имеет для массива, право?Но это не так.Единственный способ, который я мог бы найти для этого в a] foreach, - это установить счетчик (как выше) и использовать массив с индексом счетчика.Но чтобы сделать это, я должен установить счетчик за пределами цикла, и это даже не всегда надежно.Для этого я думаю, что было бы лучше использовать цикл for вместо foreach.
Так зачем вам использовать foreach over for?Я думаю, что чего-то здесь не хватает, потому что foreach ДОЛЖЕН иметь возможность изменять значения ...
Спасибо
О, ЭЙ. Еще одна вещь.Доступны ли переменные в циклах (например, i или key) вне цикла?Если бы у меня было 2 цикла foreach, таких как
foreach (вещь как значение)
, мне пришлось бы сделать второй
foreach (вещь2 как значение2)]
или иначе возникнут проблемы?