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

المصفوفات الترابطية ثنائية الأبعاد

جزء من قسم المنطق وتدفق التنفيذ في رحلة PHP على Coddy. الدرس 31 من 68.

بينما كنت تعمل مع مصفوفات ثنائية الأبعاد باستخدام فهارس رقمية، يمكنك أيضًا إنشاء بيانات أكثر تنظيمًا باستخدام associative array على المستوى الرئيسي وداخل المصفوفات المتداخلة. يستخدم هذا الأسلوب مفاتيح نصية بدلًا من الأرقام، مما يجعل بياناتك أكثر وصفية وأسهل للفهم.

إليك كيفية إنشاء مصفوفة ترابطية ثنائية الأبعاد حيث يكون لكل عنصر مفاتيح نصية ذات معنى:

<?php
$students = [
    "alice" => [
        "name" => "Alice Johnson",
        "grade" => 92
    ],
    "bob" => [
        "name" => "Bob Smith", 
        "grade" => 87
    ],
    "charlie" => [
        "name" => "Charlie Brown",
        "grade" => 95
    ]
];
?>

يمكنك أيضًا مزج الأساليب، باستخدام الفهارس الرقمية للمصفوفة الرئيسية مع الإبقاء على المصفوفات الترابطية في الداخل:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

هذا الهيكل قوي للغاية لتنظيم البيانات المعقدة مثل ملفات تعريف المستخدمين، أو كتالوجات المنتجات، أو أي سيناريو تحتاج فيه إلى تخزين خصائص متعددة مرتبطة بكل عنصر. تجعل المفاتيح النصية شفرةك موثِّقة لذاتها وأسهل بكثير في الصيانة من تذكّر المواضع الرقمية.

challenge icon

التحدي

سهل

ستتلقى مُدخلاً واحدًا: مصفوفة ترابطية ثنائية الأبعاد تمثل مخزون product بتنسيق JSON. لكل product معرّف product فريد كمفتاح، والقيمة هي مصفوفة ترابطية تحتوي على "name" و"price" الخاصين بالـproduct. اقرأ الإدخال، وحوّل سلسلة JSON إلى مصفوفة ترابطية ثنائية الأبعاد، وتكرّر عبر جميع المنتجات، واطبع معلومات كل product بالتنسيق: ID: [product_id] - Name: [name] - Price: $[price]

يجب طباعة كل product في سطر منفصل.

تنسيق الإدخال: سطر واحد يحتوي على كائن JSON يمثل product inventory (مثال: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})

الإخراج المتوقع: تتم طباعة كل product في سطر منفصل بالتنسيق ID: [product_id] - Name: [name] - Price: $[price]

جرّب بنفسك

<?php
// اقرأ إدخال JSON
$input = fgets(STDIN);

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

// TODO: اكتب الكود الخاص بك أدناه للتكرار عبر المخزون وطباعة كل منتج


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

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

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم PHP عبر الإنترنت