المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : لدرس الثامن: المصفوفات



المنصور بالله
29-05-2017, 04:37 PM
الدرس الثامن: المصفوفات

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

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

ما هي المصفوفة؟

المصفوفة (array) هي مجموعة من من العناصر المفهرسة حيث كل عنصر له رقم تعريف خاص به.

يبدو هذا مثيراً للحيرة، لكنها في الواقع ليست بهذا القدر من التعقيد.

تصور قائمة من الكلمات فصلنا بينها باستخدام فاصلة، تسمى القائمة مفصولة بفواصل، ويمكنها أن تكون بهذا الشكل:


apples, pears, bananas, oranges, lemons


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


ما تراه هو مصفوفة، يمكننا مثلاً أن نسمي المصفوفة فواكه أو "fruits"، الفكرة هي أنك تستطيع الوصول إلى المصفوفة برقم وتحصل على قيمة، كما في القائمة أدناه:

fruits(0) = apples
fruits(1) = pears
fruits(2) = bananas
fruits(3) = oranges
fruits(4) = lemons

هذه هي فكرة المصفوفات، الآن لنستخدمها عملياً.

كيف تستخدم المصفوفة؟

سنكمل مع مثال الفواكه، خطوة بعد خطوة سنجعلها تعمل كمصفوفة حقيقية، أولاً علينا أن نضع متغيرات مساوية لقائمة الفواكه:

__________________________________________________ ___
<?php

$fruitlist = "apples, pears, bananas, oranges, lemons";

?>


بعد ذلك نستخدم وظيفة explode لفصل القائمة عند كل فاصلة:


<?php

$fruitlist = "apples, pears, bananas, oranges, lemons";

$arrFruits = explode(",", $fruitlist);

?>

__________________________________________________ ___

مرحى! المتغير "$arrFruits" أصبح مصفوفة الآن!

لاحظ أننا استخدمنا الوظيفة explode بخاصيتين:

الأولى هي القائمة التي يجب تقسيمها.

والثانية هي المحدد أو الحرف الذي استخدم لتقسيم القائمة (في حالتنا استخدمنا الفاصلة): ",".
هنا نستخدم الفاصلة كمحدد أو مقسم لكن يمكنك استخدام أي حرف أو كلمة كمقسم للمصفوفة.

لنجرب إضافة تعليق على البرنامج ووضعه في صفحة PHP:

__________________________________________________ ___

<html>
<head>
<title>Array</title>
</head>
<body>

<?php

// Comma separated list
$fruitlist = "apples, pears, bananas, oranges, lemons";

// Create an array by splitting the list (with comma as delimiter)
$arrFruits = explode(",", $fruitlist);

// Write the values from our array
echo "<p>The list of fruits:</p>";

echo "<ul>";
echo "<li>" . $arrFruits[0] . "</li>";
echo "<li>" . $arrFruits[1] . "</li>";
echo "<li>" . $arrFruits[2] . "</li>";
echo "<li>" . $arrFruits[3] . "</li>";
echo "<li>" . $arrFruits[4] . "</li>";
echo "</ul>";

?>

</body>
</html>

__________________________________________________ ___

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

حلقة داخل مصفوفة

في الدرس الخامس تعلمت الحلقات، الآن يمكننا استخدام حلقة للتعامل مع المصفوفة.

عندما تعلم كم عدد العناصر التي تحويها مصفوفة فلن تكون هناك مشكلة في تحديد حلقة، ببساطة تبدأ من الصفر وتجعل الحلقة تستمر في عملها بعدد العناصر المتوفرة، في المثال مع الفواكه الحلقة ستكون بهذا الشكل:

__________________________________________________ ___

<html>
<head>
<title>Array</title>

</head>
<body>

<?php

// Comma separated list
$fruitlist = "apples, pears, bananas, oranges, lemons";

// Create an array by splitting the list (with a comma as delimiter)
$arrFruits = explode (",", $fruitlist);

echo "<p>The list of fruits:</p>";
echo "<ul>";

// Loop through the array $arrFruits
for ($x=0; $x<=4; $x++) {
echo "<li>" . $arrFruits[$x] . "</li>";
}

echo "</ul>";

?>

</body>
</html>

__________________________________________________ ___

شاهد المثال

كما ترى، المتغير $x الذي ترتفع قيمته من 0 إلى 4 في الحلقة استخدم لجلب المصفوفة

كيف تجد حجم المصفوفة؟

ماذا لو أضفنا فاكهة أخرى إلى القائمة؟ ستحوي القائمة عنصراً إضافياً وسيحمل رقم التعريف 5، هل ترى مشكلة هنا؟ نحن بحاجة لتغيير الحلقة حتى تستطيع أن تكرر نفسها من 0 إلى 5 وإلا لن نستطيع التعامل مع كل العناصر في المصفوفة.

ألن يكون من المفيد أن تكون هناك طريقة لإيجاد عدد العناصر في أي مصفوفة؟

هذا بالضبط ما يمكن أن تفعله وظيفة foreach، الآن يمكننا أن نصمم حلقة تعمل بغض النظر عن عدد العناصر في المصفوفة:

__________________________________________________ ___

<?php
foreach ($arrFruits as $x) {
echo arrFruit[$x];
}
?>
__________________________________________________ ___


هذه الحلقة ستعمل بغض النظر عن عدد العناصر التي تحويها المصفوفة.

مثال آخر

المثال أدناه يوضح كيفية استخدام المصفوفة لكتابة اسم كل شهر:
__________________________________________________ ___


<html>
<head>
<title>Array<title>

</head>
<body>

// Creates array with each month.
// Creates array with the months. Note the comma before January - because there is no month with the number 0
$arrMonths = array(,"January","February","March","April","May","June","July","August","September","October","November","December);

// Call the array with the number of the month - write to the client
echo $arrMonths[date("m")];
?>

</body>
</html>

__________________________________________________ ___

شاهد المثال

لاحظ أننا استخدمنا وظيفة array بدلاً من وظيفة explode لإنشاء مصفوفة.

حسناً، اكتفينا بالمصفوفات، في الدرس التالي ستتعلم كيف تطور وظائف خاصة بك.

ميمونة
31-05-2017, 12:23 AM
شكرا على المعلومات والافادة

منيرفا
02-06-2017, 02:02 PM
شكرا على الموضوع الشيق والمعلومات والافادة

نجوى كريم
03-06-2017, 11:56 AM
شكرا على الموضوع والافادات القيمة

جمارة
05-06-2017, 06:45 AM
شكرا على الموضوع والمعلومات المفيدة

شوقى غريب
10-06-2017, 10:21 PM
شكرا على المعلومات والافادة

جيهان
21-06-2017, 02:25 PM
شكرا على الموضوع والافادة والمعلومات القيمة

لمياء الدميرى
22-06-2017, 08:33 AM
شكرا على المعلومات والافادة

عهود المالكى
23-06-2017, 04:16 PM
شكرا على الموضوع والافادة والمعلومات القيمة

ماهيتاب السويدى
27-06-2017, 12:06 AM
شكرا على المعلومات والافادة

يمنة
20-07-2017, 05:50 PM
شكرا على المعلومات والافادة

بلبلة
23-08-2017, 05:29 PM
شكرا على الموضوع والافادة والمعلومات القيمة

tafouket
26-08-2017, 07:06 PM
شكرا على المعلومات والافادة

عيون المهى
07-12-2017, 07:26 PM
شكرا على الموضوع والمعلومات المفيدة

nada
18-12-2017, 09:55 AM
شكرا على الموضوع والافادات القيمة

ندى الصباح
19-12-2017, 06:58 AM
شكرا على المعلومات والافادة

يسرا المرشدى
25-12-2017, 03:04 PM
شكرا على الموضوع الشيق والمعلومات والافادة