برمجة صفحات الويب بإستخدام Php ...الدرس السابع / المصفوفات Arrays

اذهب الى الأسفل

برمجة صفحات الويب بإستخدام Php ...الدرس السابع / المصفوفات Arrays  Empty برمجة صفحات الويب بإستخدام Php ...الدرس السابع / المصفوفات Arrays

مُساهمة من طرف أحمد مناع في الثلاثاء يوليو 30, 2013 12:08 pm

بسم الله الرحمن الرحيم

 أهلا و سهلا بكم أخوانى الكرام  ....فى هذا الدرس -بإذن الله- سنتعرف على المصفوفات بشكل تفصيلي ، سنتعرف أولاً على مفهوم المصفوفات، ومن ثم سنتعرف على أنواع المصفوفات، ومن ثم ندخل فى تفاصيل كتابة المصفوفات والتعامل معها....وقبل البدء أحب أن أنوه أن هذا الدرس منقول حرفيا من هنأ http://www.phpgeekar.com/

- مفهوم المصفوفات.
المصفوفات هي ببساطة عبارة عن متغيرات يمكن إدخال أكثر من قيمة لها، ويتم الوصول إلى تلك القيم عن طريق الـKey الخاص بها، والذي يتم تعريفه تلقائيًا كأرقام، أو يمكن تعريفها من قبل المبرمج.

- أنواع المصفوفات.
المصفوفات لها أكثر من نوع، وتلك الأنواع تصنف حسب أبعاد المصفوفة، حيث توجد مصفوفة أحادية الأبعاد، ومصفوفة أخرى ثنائية الأبعاد ومصفوفة ثلاثية الأبعاد إلخ.

وفكرة تلك الأبعاد أن أحادية الأبعاد يكون لكل Key فى المصفوفة عبارة عن متغير واحد يحمل قيمة واحدة، أما ثنائية الأبعاد يتكون كل Key فيها من مصفوفة أخري لها أكثر من قيمة، أما ثلاثية الأبعاد يتكون كل Key منها من مصفوفة كل Key فيها عبارة عن مصفوفة أخري كل Key منها عبارة عن متغير يحمل قيمة معينة.

أعتقد ان هذا الكلام صعب عند قرائته للوهلة الأولى، لكن عند الخوض فى المصفوفات ستدركون تفاهة وسهولة تلك الجمل الماضية.

- كتابة المصفوفات.
كتابة المصفوفات يكون عن طريق الإعلان عن متغير عادي ، ومن ثم عند تعريفه نقوم بكتابة كلمة Array ثم نقوم بفتح قوسين عاديين () ثم نكتب القيم المُراد إدخالها فى المصفوفة مع الفصل بين كل القيم بالفاصلة , وأيضًا مع مراعاة أن النصوص Strings يتم إدخالها بين أقواس إقتباس أما الأرقام يتم إدخالها مباشرة.
كمثال بسيط:
الكود:
<?php

$countries = array("EGYPT","LIBYA","TUNISIA");

?>


تلك المصفوفة هي مصفوفة أحادية البُعد والـKeys لها معرفة من قبل اللغة بشكل تلقائي، حيث أنها مرقمة ترقيم يبدأ من الصفر، ويتم الوصول للـ Key عن طريق تلك الأقواس [] فمثلاً إذا أردنا طباعة كلمة EGYPT نستطيع ذلك عبر الوصول إلى الـKey رقم صفر؛ لأن الترقيم يبدأ من صفر.

الكود:
<?php
$countries = array("EGYPT","LIBYA","TUNISIA");
echo $countries[0];

?>


بهذا يتم طباعة القيمة التى تحمل الـKey رقم 0 ، أما القيمة التي تليها فستحمل الـKey رقم "0+1" فيصبح الـkey للقيمة LIBYA تحمل 1، ومن ثم القيمة التي تليها تحمل الـKey رقم "1+1" فيصبح الـKey للقيمة TUNISIA هي 2.
الجدير بالذكر أنه يمكن عند تعريف المصفوفة كتابة Array() فقط دون كتابة أى قيم بها ومن ثم تعريف القيم التي بها عن طريق ذكر الـKey ثم إدخال قيمة له كما بالمثال التالي:

الكود:
<?php
$countries = array();
$countries[0] = "EGYPT";
$countries[1] = "LIBYA";
$countries[2] = "TUNISIA";
?>


كما يمكن تعريف المصفوفة كما فى الطريقة الأولى ومن ثم إضافة قيم لها عبر الطريقة الثانية، وذلك كالتالي:

الكود:
<?php
$countries = array("EGYPT","LIBYA","TUNISIA");
$countries[3] = "ALGERIA";
$countries[4] = "MOROCCO";
?>



- التحكم فى الـKeys.
فى الطريقة الثانية لتعريف القيم المُدخلة فى المصفوفات يمكننا تغيير الـKey عن طريقة كتابة ما نريد بين القوسين [] سواءًا كان نص أو رقم، أما فى الطريقة الأولى يمكننا ذلك عبر كتابة ما نريد ثم تلك العلامة: => ثم القيمة التى نريدها، فى المثالين التاليين سأستعرض لكم الطريقتين للمزيد من التوضيح:

الكود:
<?php
$countries = array("EG"=>"EGYPT",[2]=>"LIBYA",[3]=>"TUNISIA");
$countries["SU"] = "SUDAN";
echo $countris["EG"]."<br>".$countries["SU"};
?>


مع العلم إنه إنك إذا قمت فى حالة تعريف قيم المصفوفة فى نفس سطر الإعلان عن المتغير بداخل كلمة array وقمت بتغيير الـKey لقيمة رقمية معينة سيتم العدّ على أساسها .. أى أن الـKey التى تليها ستكون "س + 1" حيث س يتكون هي الـKey التي قمت بإدخالها للقيمة الأولى.

سيكون لنا لقاء آخر لنستكمل حديثنا عن المصفوفات وأبعادها.

ملاحظة:

الـKeys و Offsets و Indexes هي كلها مسميات لنفس الشيء ، وغالبًا ما سأستخدم لفظ Index للتعبير عن الـKeys فى المصفوفات.

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 994
النقاط : 201783
التقيم : 119
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى