الوصول إلى القيم عبر المفتاح
جزء من قسم الأساسيات في رحلة PHP على Coddy. الدرس 42 من 71.
الآن بعد أن فهمت ماهية المصفوفات الترابطية، لنتعلم كيفية استرداد القيم منها. وكما تستخدم المصفوفات المفهرسة مواضع رقمية، تستخدم المصفوفات الترابطية المفاتيح داخل الأقواس المربعة.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>الصياغة هي $array["key"]: ضع المفتاح كسلسلة نصية داخل الأقواس، وسيُرجع PHP القيمة associated. وهذا أكثر قابلية للقراءة بكثير من تذكّر أن الاسم موجود في الفهرس 0.
يمكنك أيضًا تخزين القيمة المستردة في متغير لاستخدامها لاحقًا:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>يجب أن يتطابق المفتاح تمامًا، بما في ذلك حالة الأحرف. سيؤدي استخدام "Name" بدلًا من "name" إلى حدوث خطأ، لأن PHP يتعامل معهما كمفتاحين مختلفين.
أحيانًا تصل البيانات كسلسلة JSON بدلًا من تعبير مصفوفة PHP الحرفي. يُعد JSON (ترميز كائنات JavaScript) تنسيقًا نصيًا شائعًا لتمثيل البيانات المهيكلة. على سبيل المثال:
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';تحوّل الدالة المضمّنة json_decode() في PHP سلسلة JSON إلى قيمة PHP. للحصول على مصفوفة ترابطية، مرّر true كوسيط ثانٍ:
<?php
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';
$book = json_decode($json, true);
echo $book["title"]; // Dune
echo $book["author"]; // Frank Herbert
echo $book["year"]; // 1965
?>بعد استدعاء json_decode($json, true)، تكون النتيجة مصفوفة ترابطية عادية، ويمكنك الوصول إلى قيمها بالطريقة نفسها تمامًا كما في أي مصفوفة ترابطية أخرى: باستخدام $array["key"].
التحدي
سهلاقرأ سطرًا من الإدخال يحتوي على كائن JSON يمثّل معلومات كتاب (مثل {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
ثم اقرأ مدخلين إضافيين:
- نص
key1يمثّل المفتاح الأول المراد الوصول إليه - نص
key2يمثّل المفتاح الثاني المراد الوصول إليه
لتحويل نص JSON إلى مصفوفة ترابطية، استخدم الدالة المضمّنة 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جرّب بنفسك
<?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
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط7المصفوفات الجزء الثاني - الترابطية
مقدمة في المصفوفات الترابطيةالوصول إلى القيم عبر المفتاحتعديل القيم عبر المفتاحإضافة أزواج (مفتاح-قيمة) جديدةالتحقق من وجود المفتاحملخص - مخزن بيانات (مفتاح-قيمة)2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوصتدرّب بنفسك: مترجم PHP عبر الإنترنت