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

السؤال

نشر

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

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...