สิ่งที่ฉันจะทำคือลบองค์ประกอบแรกก่อนที่จะวนลูป สร้างอาร์เรย์ใหม่หากคุณต้องการ อธิบายในความคิดเห็นว่าทำไมคุณถึงทำ และจากนั้นทำแบบง่าย ๆ foreach
$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
เป็นวิธีที่เหนือกว่า : /