Những gì tôi sẽ làm là loại bỏ phần tử đầu tiên trước khi lặp. Tạo một mảng mới nếu bạn cần. Giải thích trong một nhận xét tại sao bạn làm điều đó. Và sau đó chỉ cần làm một bài giảng đơn giản.
$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
}
Bằng cách này, ý định của bạn là hoàn toàn rõ ràng.
Để làm rõ hơn, bạn có thể bọc mã trong một phương thức với một tên thích hợp để làm cho mọi thứ rõ ràng hơn.
function doStuffToAllButTheFirst($array) { // this copies the original array, so there are no sideffects
array_shift($array);
foreach($array => $element) { // do stuff }
}
Tuy nhiên tất cả điều này vẫn còn thiếu bối cảnh. Bạn muốn làm gì với các yếu tố? Bạn sẽ trở lại mảng mới? Bạn có quan tâm đến các bản gốc và mảng mới sau bạn doStuff()
?
Dù sao, không có câu trả lời rõ ràng ở đây và việc quyết định làm thế nào để đọc mã phụ thuộc rất nhiều vào bối cảnh.
$i=2-1
là cách vượt trội. : /