Що б я зробив, це видалити перший елемент перед циклом. Створіть новий масив, якщо вам потрібно. Поясніть в коментарі, чому ви це робите. А потім просто зробіть просте передбачення.
$arrayCopy = $array; // in case you don't want to touch the original array
array_shift($arrayCopy); // removing first element because of X reason.
foreach($arrayCopy => $element) {
// do stuff
}
Таким чином ваш намір ідеально зрозумілий.
Щоб уточнити далі, ви можете зафіксувати код методом з відповідною назвою, щоб зробити речі зрозумілішими.
function doStuffToAllButTheFirst($array) { // this copies the original array, so there are no sideffects
array_shift($array);
foreach($array => $element) { // do stuff }
}
Однак у всьому цьому поки що відсутній контекст. Що ви хочете зробити з елементами? Ви повернете новий масив? Чи дбаєте ви про оригінал та новий масив після вас doStuff()
?
У будь-якому випадку, тут немає чіткої відповіді, і рішення, як зробити код читабельним, дуже залежить від контексту.
$i=2-1
це вищий спосіб. : /