🚀 احتراف حلقة foreach في PHP: دليلك الشامل للمبتدئين
بعد أن تعرفنا في الدروس السابقة على المصفوفات (Arrays) وكيفية تخزين البيانات فيها، حان الوقت لنتعلم كيف نستخرج هذه البيانات ونعرضها بطريقة ذكية وسهلة.
اليوم سنتحدث عن حلقة foreach، وهي الأداة السحرية في PHP المصممة خصيصاً للتعامل مع المصفوفات.
❓ ما هي حلقة foreach ولماذا نستخدمها؟
تخيل أن لديك مصفوفة تحتوي على 100 اسم من المستخدمين، هل يعقل أن تقوم بطباعة كل اسم يدوياً؟ بالطبع لا! ❌
هنا يأتي دور foreach. هي حلقة تكرارية وظيفتها الوحيدة هي "المرور" على كل عنصر داخل المصفوفة واحداً تلو الآخر، وتنفيذ أمر معين عليه (مثل طباعته)، حتى تصل إلى نهاية المصفوفة وتتوقف تلقائياً.
الميزة الكبرى: لست بحاجة لتحديد عدد عناصر المصفوفة أو استخدام عداد (مثل $i++)، فهي تعرف متى تبدأ ومتى تنتهي بمفردها! ✨
🛠️ الصيغة الأساسية لكتابة foreach
لكي تعمل هذه الحلقة، نحتاج إلى إخبار PHP بمكان المصفوفة، وأين يضع العنصر الحالي الذي يقف عنده.
الصيغة تكون كالتالي:
foreach ($array as $value) {
// الكود الذي سيتم تنفيذه لكل عنصر
}
شرح المكونات:
$array: هي المصفوفة التي نريد استخراج البيانات منها.as: كلمة مفتاحية تعني "بصفتِهِ" أو "كـ".$value: هو متغير مؤقت (أنت تختار اسمه) يمثل "العنصر الحالي" في كل لفة من لفات الحلقة.
📝 مثال عملي 1: التعامل مع المصفوفات البسيطة (Indexed Arrays)
لنطبق هذا عملياً. لنفترض أن لدينا مصفوفة تحتوي على أسماء بعض الفواكه ونريد طباعتها في قائمة.
<?php
// تعريف مصفوفة بسيطة تحتوي على فواكه
$fruits = array("Apple", "Banana", "Orange", "Mango");
// استخدام foreach للمرور على كل فاكهة وطباعتها
foreach ($fruits as $fruit) {
echo "Fruit name: " . $fruit . "<br>"; // طباعة اسم الفاكهة الحالية
}
?>
ماذا حدث هنا؟ 🧐
- في اللفة الأولى: أخذت
foreachالقيمة "Apple" ووضعتها في المتغير$fruitثم قامت بطباعتها. - في اللفة الثانية: انتقلت تلقائياً إلى "Banana" ووضعتها في
$fruitوطبعتها. - وهكذا... حتى انتهت من كل العناصر.
🔑 مثال عملي 2: التعامل مع المصفوفات الترابطية (Associative Arrays)
في المصفوفات الترابطية، لدينا "مفتاح" (Key) و "قيمة" (Value). حلقة foreach تتيح لنا الحصول على الاثنين معاً في نفس الوقت.
الصيغة في هذه الحالة تكون:
foreach ($array as $key => $value) {
// الكود هنا
}
لنطبق ذلك على مصفوفة تحتوي على درجات الطلاب:
<?php
// مصفوفة ترابطية: المفتاح هو اسم الطالب، والقيمة هي درجته
$student_grades = array(
"Ahmed" => 95,
"Sara" => 88,
"Ali" => 70
);
// الحصول على المفتاح (الاسم) والقيمة (الدرجة)
foreach ($student_grades as $name => $grade) {
echo "Student: " . $name . " | Grade: " . $grade . "<br>";
}
?>
شرح الكود:
- المتغير
$nameسيستقبل "المفتاح" (Ahmed, Sara, Ali). - المتغير
$gradeسيستقبل "القيمة" (95, 88, 70). - يتم تنفيذ العملية لكل زوج (مفتاح وقيمة) داخل المصفوفة. ✅
⚠️ ملاحظات هامة جداً
- تسمية المتغيرات: يمكنك تسمية المتغيرات بأي اسم (مثلاً
$item,$x,$val) ولكن من الأفضل دائماً تسميتها بأسماء تدل على محتواها (مثل$fruitلمصفوفة الفواكه) ليكون الكود مفهوماً. - نوع البيانات: حلقة
foreachتعمل فقط مع المصفوفات (Arrays) والكائنات (Objects). إذا حاولت استخدامها مع متغير عادي (String أو Integer)، سيظهر لك خطأ في PHP.
🎯 ملخص سريع
foreachهي أسهل طريقة للمرور على عناصر المصفوفات.- للمصفوفات البسيطة نستخدم:
foreach ($array as $value). - للمصفوفات الترابطية نستخدم:
foreach ($array as $key => $value). - لا نحتاج لتعريف عداد أو تحديد طول المصفوفة.
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال