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

التكرار باستخدام المفاتيح والقيم

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

في الدرس السابق، تعلمت كيف يمنحك foreach الوصول إلى كل قيمة في مصفوفة. ولكن ماذا لو كنت بحاجة أيضاً إلى المفتاح؟ هذا مفيد بشكل خاص عند التعامل مع المصفوفات الترابطية.

تمتلك حلقة foreach صيغة ممتدة توفر كلاً من المفتاح والقيمة في كل تكرار:

<?php
$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

foreach ($person as $key => $value) {
    echo "$key: $value\n";
}
?>

هذا ينتج:

name: Alice
age: 25
city: Paris

الصيغة foreach ($array as $key => $value) تقوم بتعيين المفتاح الحالي إلى $key والقيمة المقابلة إلى $value. يمكنك تسمية هذه المتغيرات بأي اسم تريده—فقط اجعلها وصفية.

يعمل هذا أيضاً مع المصفوفات المفهرسة، حيث تكون المفاتيح هي الفهارس الرقمية:

<?php
$colors = ["red", "green", "blue"];

foreach ($colors as $index => $color) {
    echo "$index: $color\n";
}
?>

هذا ينتج:

0: red
1: green
2: blue

إن الوصول إلى كل من المفاتيح والقيم يجعل من السهل عرض البيانات المصنفة أو إجراء عمليات تعتمد على المفتاح.

challenge icon

التحدي

سهل

اقرأ سطراً واحداً من المدخلات يحتوي على كائن JSON يمثل منتجاً بمفاتيح وقيم (على سبيل المثال، {"name":"Laptop","price":"999","stock":"25"}).

استخدم حلقة foreach مع صيغة المفتاح-القيمة (key-value) للتكرار عبر بيانات المنتج. اطبع كل مفتاح والقيمة المقابلة له بالتنسيق التالي:

[key] => [value]

اطبع كل زوج من المفتاح والقيمة في سطر منفصل.

مثال 1:

إذا كانت المدخلات {"name":"Laptop","price":"999","stock":"25"}، يجب أن تكون المخرجات:

name => Laptop
price => 999
stock => 25

مثال 2:

إذا كانت المدخلات {"title":"PHP Basics","author":"John","pages":"350"}، يجب أن تكون المخرجات:

title => PHP Basics
author => John
pages => 350

مثال 3:

إذا كانت المدخلات {"city":"Paris","country":"France"}، يجب أن تكون المخرجات:

city => Paris
country => France

ورقة مرجعية

يمكن لحلقة foreach توفير كل من المفتاح والقيمة في كل تكرار باستخدام الصيغة الموسعة:

foreach ($array as $key => $value) {
    // استخدم $key و $value
}

مثال مع مصفوفة ترابطية (associative array):

$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

foreach ($person as $key => $value) {
    echo "$key: $value\n";
}

المخرجات:

name: Alice
age: 25
city: Paris

تعمل هذه الصيغة أيضاً مع المصفوفات المفهرسة (indexed arrays)، حيث تكون المفاتيح فهارس رقمية:

$colors = ["red", "green", "blue"];

foreach ($colors as $index => $color) {
    echo "$index: $color\n";
}

المخرجات:

0: red
1: green
2: blue

جرّب بنفسك

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

// تحويل JSON إلى مصفوفة ترابطية
$product = (array)json_decode($input, true);

// TODO: اكتب كودك أدناه
// استخدم حلقة foreach مع صيغة المفتاح والقيمة للتكرار عبر بيانات المنتج
// اطبع كل مفتاح وقيمة بالتنسيق التالي: [key] => [value]

?>
quiz iconاختبر نفسك

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

جميع دروس Fundamentals