В тех немногих случаях, которые я пытался использовать вместо foreach, я вскоре пожалел об этом.
Этого действительно всегда можно избежать, вы можете даже использовать foreach, но игнорировать значения и использовать ключ, почти забывая, что это foreach вместо for, но избегая любых пробелов в ваших ключах и автоматически заботясь о своих границах без длина / мин / макс функции или что-нибудь.
отл.
foreach($myArray as $key=>$val)
{
myArray[$key] = myFunction(myArray[$key]);
}
Я особенно нашел это полезным для параллельных массивов.
$a = getA(); $b = getB();
foreach($a as $key=>val)
{
$sql = "INSERT INTO table (field1, field2) VALUES ($a[$key], $b[$key])";
}