Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

حلقة Foreach

جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 49 من 71.

عند العمل مع المصفوفات، غالباً ما تحتاج إلى المرور عبر كل عنصر واحداً تلو الآخر. بينما يمكنك استخدام حلقة for مع عداد فهرس، توفر PHP حلاً أكثر نظافة: حلقة foreach.

تم تصميم حلقة foreach خصيصًا للتكرار عبر المصفوفات. فهي تتعامل تلقائيًا مع العد وتمنحك وصولاً مباشرًا إلى كل عنصر.

<?php
$fruits = ["apple", "banana", "cherry"];

foreach ($fruits as $fruit) {
    echo $fruit . "\n";
}
?>

هذا ينتج:

apple
banana
cherry

الصيغة بسيطة: foreach ($array as $item). في كل تكرار، يتم تعيين العنصر التالي من المصفوفة إلى $item، ويمكنك استخدامه داخل جسم الحلقة.

قارن هذا بتحقيق نفس النتيجة باستخدام حلقة for:

<?php
$fruits = ["apple", "banana", "cherry"];

for ($i = 0; $i < count($fruits); $i++) {
    echo $fruits[$i] . "\n";
}
?>

إصدار foreach أقصر وأسهل في القراءة. لا تحتاج إلى إدارة متغير فهرس أو القلق بشأن طول المصفوفة - يتولى PHP كل ذلك نيابة عنك.

challenge icon

التحدي

سهل

اقرأ سطرًا واحدًا من المدخلات يحتوي على قائمة أرقام مفصولة بفاصلة (على سبيل المثال، 10,25,5,30,15).

استخدم حلقة foreach للتكرار عبر المصفوفة وحساب مجموع كل الأرقام. اطبع المجموع الكلي.

مثال 1:

إذا كانت المدخلات هي 10,25,5,30,15، يجب أن تكون المخرجات:

85

مثال 2:

إذا كانت المدخلات هي 1,2,3,4,5، يجب أن تكون المخرجات:

15

مثال 3:

إذا كانت المدخلات هي 100,200,300، يجب أن تكون المخرجات:

600

ورقة مرجعية

تم تصميم حلقة foreach خصيصاً للتكرار عبر المصفوفات دون الحاجة إلى إدارة متغيرات الفهرس.

الصيغة الأساسية:

<?php
foreach ($array as $item) {
    // استخدم $item
}
?>

مثال:

<?php
$fruits = ["apple", "banana", "cherry"];

foreach ($fruits as $fruit) {
    echo $fruit . "\n";
}
?>

هذا الأسلوب أكثر بساطة من استخدام حلقة for مع عداد فهرس، حيث تتولى PHP تلقائياً عملية العد وتحديد طول المصفوفة.

جرّب بنفسك

<?php
// قراءة المدخلات
$input = trim(fgets(STDIN));
$numbers = explode(',', $input);

// TODO: اكتب كودك أدناه لحساب المجموع باستخدام حلقة foreach
$sum = 0;


// طباعة النتيجة
echo $sum;
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals