اذهب إلى المحتوى
  • 0

طباعة عناصر مصفوفات متداخلة باستعمال array - foreach بلغة PHP

أميرة أبو العوف

السؤال

أريد حل هذا الكود

the array:

class_array = array (
array ("CS122", "Programming Concepts 1","Basic concepts of the PHP language.","B123", "Dr. Abraham Excel", 50), array ("CS123", "Programming Concepts 2","Advanced concepts of the PHP language.", "B123", "Dr. Abraham Excel", 50)
);

the result must be as the following pattern :
item #1:
 -CS122
-Programming Concepts 1
-Basic concepts of the PHP language
-B123
-Dr. Abraham Excel
-50

item #2:

-CS123
-Programming Concepts 2
-Basic concepts of the PHP language.
-B123
-Dr. Abraham Excel
-50

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

قدمت إجابة لنفس السؤال باستخدام حلقة for عادية يمكنك الإطلاع عليها في نهاية الإجابة

حسب كيفية طباعة البيانات نرى أننا نريد رقم العنصر وهو ما يعرض بعد item أي: item #1 وهذا كان بطباعة قيمة عداد الحلقة i$ الذي يزيد مع كل تكرار..

إذا كانت مصفوفة PHP عادية ومفاتيحها أرقام، يمكننا الوصول لدليل العنصر عن طريق index مباشرة لأنه رقم، أما في حال مصفوفة ترابطية و دليلها نص، فلن تنفع.

foreach($array as $key=>$value) {
	echo $key;                         // 0 1 2 3 ...
    // do stuff
}

key سيحمل قيمة مفتاج العنصر أو ترقيمه في المصفوفة

Value ستحمل لكل تكرار قيمة العنصر الذي تكراره key والتي لدينا هي مصفوفة أخرى

<?php

$class_array = ..

  foreach($class_array as $key=>$sub_array) {

    echo .. item key

      foreach($sub_array as $key=>$value) {
        
        echo ??? $value
      }

  }

يمكننا تخصيص عداد مستقل ليساعدنا في ترقيم العناصر في حال مصفوفة فيها دليل index العنصر ليس رقم بالشكل:

<?php

$index = 0;
foreach($data as $key=>$val) {

  echo "Index is $index\n";     // طباعة العداد تعطينا رقم العنصر
  
  $index++;   // لا ننسى زيادة قيمة العداد
}

و معلومة أخرى، 

عند التكرار على مصفوفة سيتم إنشاء مؤشر داخلي فيها يمكن قراءة قيمته باستخدام دالة curreny التي تعيد رقم العنصر و نستفيد منه كما عداد الحلقة i$ 

foreach($array as $key => $value){
   $index = current($array);         // 0 1 2 3 
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...