التكرار باستخدام المفاتيح والقيم
جزء من قسم 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إن الوصول إلى كل من المفاتيح والقيم يجعل من السهل عرض البيانات المصنفة أو إجراء عمليات تعتمد على المفتاح.
التحدي
سهلاقرأ سطراً واحداً من المدخلات يحتوي على كائن 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]
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات8الحلقات التكرارية
حلقة Forحلقة Whileحلقة Foreachالتكرار باستخدام المفاتيح والقيمجملة Breakجملة Continueمراجعة - التكرار عبر البيانات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص