إضافة أزواج (مفتاح-قيمة) جديدة
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 44 من 71.
لقد تعلمت كيفية تعديل القيم الموجودة في مصفوفة ترابطية. ولكن ماذا يحدث عندما تقوم بتعيين قيمة لمفتاح غير موجود بعد؟ يقوم PHP بإنشائه تلقائياً لك.
<?php
$person = [
"name" => "Alice",
"age" => 25
];
$person["city"] = "Paris";
$person["job"] = "Developer";
echo $person["city"]; // باريس
echo $person["job"]; // مطور
?>بنية الجملة البرمجية هي نفسها المستخدمة للتعديل—$array["key"] = value—ولكن عندما لا يكون المفتاح موجوداً، يقوم PHP بإضافة زوج (مفتاح-قيمة) جديد إلى المصفوفة بدلاً من تحديث زوج موجود.
هذا مفيد بشكل خاص عند بناء مصفوفة ترابطية تدريجياً:
<?php
$settings = [];
$settings["theme"] = "dark";
$settings["language"] = "en";
$settings["notifications"] = true;
echo $settings["theme"]; // dark
?>البدء بمصفوفة فارغة وإضافة أزواج حسب الحاجة هو نمط شائع عند جمع البيانات بمرور الوقت أو عندما لا تعرف جميع المفاتيح مسبقاً.
التحدي
سهلابدأ بمصفوفة ترابطية فارغة تسمى $profile.
اقرأ المدخلات التالية:
- سلسلة نصية
key1- المفتاح الأول للإضافة - سلسلة نصية
value1- القيمة الخاصة بـkey1 - سلسلة نصية
key2- المفتاح الثاني للإضافة - سلسلة نصية
value2- القيمة الخاصة بـkey2 - سلسلة نصية
key3- المفتاح الثالث للإضافة - سلسلة نصية
value3- القيمة الخاصة بـkey3
أضف كل زوج (مفتاح-قيمة) إلى مصفوفة $profile، ثم اطبع:
- القيمة المرتبطة بـ
key1 - القيمة المرتبطة بـ
key2 - القيمة المرتبطة بـ
key3
اطبع كل نتيجة في سطر منفصل.
مثال:
إذا كانت المدخلات هي username، و alice123، و email، و alice@example.com، و status، و active، يجب أن تكون المخرجات:
alice123
alice@example.com
activeإذا كانت المدخلات هي brand، و Nike، و size، و 42، و color، و black، يجب أن تكون المخرجات:
Nike
42
blackورقة مرجعية
لإضافة زوج مفتاح-قيمة جديد إلى مصفوفة ترابطية، استخدم نفس صيغة التعديل: $array["key"] = value. إذا لم يكن المفتاح موجوداً، فإن PHP تقوم بإنشائه تلقائياً:
<?php
$person = [
"name" => "Alice",
"age" => 25
];
$person["city"] = "Paris";
$person["job"] = "Developer";
?>يمكنك البدء بمصفوفة فارغة وبنائها تدريجياً:
<?php
$settings = [];
$settings["theme"] = "dark";
$settings["language"] = "en";
$settings["notifications"] = true;
?>جرّب بنفسك
<?php
// قراءة المدخلات
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
$key3 = trim(fgets(STDIN));
$value3 = trim(fgets(STDIN));
// البدء بمصفوفة ترابطية فارغة
$profile = [];
// TODO: اكتب كودك أدناه
// أضف كل زوج من المفتاح والقيمة إلى مصفوفة $profile
// طباعة القيم المرتبطة بكل مفتاح
echo $profile[$key1] . "\n";
echo $profile[$key2] . "\n";
echo $profile[$key3] . "\n";
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط7المصفوفات الجزء الثاني - الترابطية
مقدمة في المصفوفات الترابطيةالوصول إلى القيم عبر المفتاحتعديل القيم عبر المفتاحإضافة أزواج (مفتاح-قيمة) جديدةالتحقق من وجود المفتاحملخص - مخزن بيانات (مفتاح-قيمة)2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص