الوصول إلى القيم عبر المفتاح
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 42 من 71.
الآن بعد أن فهمت ما هي المصفوفات الترابطية (associative arrays)، دعنا نتعلم كيفية استرداد القيم منها. تماماً كما تستخدم المصفوفات المفهرسة (indexed arrays) المواقع الرقمية، تستخدم المصفوفات الترابطية مفاتيح داخل أقواس مربعة.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>الصيغة هي $array["key"]—ضع المفتاح كسلسلة نصية داخل الأقواس، وسيقوم PHP بإرجاع القيمة المرتبطة به. هذا أكثر قابلية للقراءة بكثير من تذكر أن الاسم موجود في الفهرس 0.
يمكنك أيضاً تخزين القيمة المستردة في متغير لاستخدامها لاحقاً:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // لابتوب
?>يجب أن يتطابق المفتاح تماماً—بما في ذلك حالة الأحرف. استخدام "Name" بدلاً من "name" سيؤدي إلى حدوث خطأ لأن PHP يعاملهما كمفتاحين مختلفين.
أحياناً تصل البيانات كـ سلسلة JSON نصية بدلاً من مصفوفة PHP. تعد JSON (JavaScript Object Notation) تنسيقاً نصياً شائعاً لتمثيل البيانات المهيكلة. تقوم دالة json_decode() المدمجة في PHP بتحويل سلسلة JSON نصية إلى قيمة PHP. عندما تمرر true كمعامل ثانٍ، فإنها تعيد مصفوفة ترابطية بدلاً من كائن، لذا يمكنك الوصول إلى القيم باستخدام صيغة $array["key"] المألوفة.
<?php
$json = '{"name": "Alice", "age": 25}';
$data = json_decode($json, true);
echo $data["name"]; // Alice
echo $data["age"]; // 25
?>التحدي
سهلاقرأ سطراً من المدخلات يحتوي على كائن JSON يمثل معلومات كتاب (على سبيل المثال، {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
ثم اقرأ مدخلين إضافيين:
- سلسلة نصية
key1تمثل المفتاح الأول للوصول إليه - سلسلة نصية
key2تمثل المفتاح الثاني للوصول إليه
لتحويل سلسلة JSON النصية إلى مصفوفة ترابطية (associative array)، استخدم الدالة المدمجة json_decode() مع تمرير true كمعامل ثانٍ:
$array = json_decode($jsonString, true);
المعامل الثاني true يخبر PHP بإرجاع مصفوفة ترابطية بدلاً من كائن. بمجرد فك التشفير، يمكنك الوصول إلى القيم عن طريق المفتاح تماماً مثل أي مصفوفة ترابطية، على سبيل المثال $array["title"].
قم بإنشاء مصفوفة ترابطية من مدخل JSON، ثم:
- قم بالوصول إلى القيمة المرتبطة بـ
key1واطبعها - قم بتخزين القيمة المرتبطة بـ
key2في متغير يسمى$info - اطبع القيمة المخزنة في
$info
اطبع كل نتيجة في سطر منفصل.
مثال:
إذا كانت المدخلات هي {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}، و title، و author، فيجب أن تكون المخرجات:
The Great Gatsby
F. Scott Fitzgeraldإذا كانت المدخلات هي {"name": "Laptop", "brand": "TechCo", "price": 999}، و brand، و price، فيجب أن تكون المخرجات:
TechCo
999ورقة مرجعية
لاسترداد القيم من مصفوفة ترابطية (associative array)، استخدم المفتاح داخل أقواس مربعة:
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25بنية الجملة هي $array["key"]. المفاتيح حساسة لحالة الأحرف.
يمكنك تخزين القيم المستردة في متغيرات:
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptopاستخدم json_decode($jsonString, true) لتحويل سلسلة JSON إلى مصفوفة ترابطية. الوسيط الثاني true يخبر PHP بإرجاع مصفوفة بدلاً من كائن:
$json = '{"name":"Alice","age":25}';
$data = json_decode($json, true);
echo $data["name"]; // Alice
echo $data["age"]; // 25جرّب بنفسك
<?php
// قراءة مدخلات JSON
$jsonInput = trim(fgets(STDIN));
// قراءة المفتاحين
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// TODO: اكتب كودك أدناه
// 1. إنشاء مصفوفة ترابطية من مدخلات JSON باستخدام json_decode
// 2. الوصول إلى القيمة المرتبطة بـ $key1 وطباعتها
// 3. تخزين القيمة المرتبطة بـ $key2 في متغير يسمى $info
// 4. طباعة القيمة المخزنة في $info
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط7المصفوفات الجزء الثاني - الترابطية
مقدمة في المصفوفات الترابطيةالوصول إلى القيم عبر المفتاحتعديل القيم عبر المفتاحإضافة أزواج (مفتاح-قيمة) جديدةالتحقق من وجود المفتاحملخص - مخزن بيانات (مفتاح-قيمة)2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص