

نبدأ مع كيفية تفكيك المصفوفات
شرحنا سابقا كيفية بناء المصفوفات و اليوم نلقى نظرة على تفكيك المصفوفة من عناصرها وهنا سوف نقسمها إلى قسمين أو نوعين لآداء تلك المهمة :
أولا : بواسطة الكلمة المحجوزة للبرنامج والتى تعبر عن وظيفة و إسم هذة الكلمة فى اللوا هى unpack
وباللغة العربية تنطق أن باك

كود PHP:
{"abood", "Haitham", "aziz", "khaled"}
نريد تفكيك هذة المصفوفة السابقة من عناصرها وذلك بغرض عرض العناصر كل على حدى فيكون كالآتى :
كود PHP:
unpack ({"abood", "Haitham", "aziz", "khaled"} )
هنا سوف يكون ناتج تفكيك المصفوفة كالتالى :
abood , Haitham , aziz , khaled

كود PHP:
f = unpack ({"abood", "Haitham", "aziz", "khaled"})
Dialog.Message("Notice", f, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

نعود بمثال بسيط للتوضيح إذا كان :
كود PHP:
t = 1

نعود بمثال آخر إذا كان :
كود PHP:
t = "abood", "abohmam"

من التوضيحات السابقة نجد أن لتساوى طرفين أحدهما يعبر عنه بالمتغير أو المتغيرات و الآخر هو القيمة أو القيم يتم وضع عدد من المتغيرات و عدد من القيم
فيكون المتغير الأول يساوى القيمة الأولى أو بمعنى المتغير الأول معبر عنة بالقيمة الأولى
ولا يخفى علينا معنى كلمة المتغير فقد وضحناها فى الشروحات السابقة
وطبعا القراءة من اليسار إلى اليمين بالنسبة للأكواد
إذن فى المثال السابق نجد أن القيمة abohmam لايوجد متغير معبر عنة
أما القيمة abood فقد كان المتغير t معبرا عنة

نعود بمثال لآخر إذا كان :
كود PHP:
t , s = "abood" , "abohmam"


نعود بمثال لآخر إذا كان :
كود PHP:
t , s , v = "abood" , "abohmam"






كود PHP:
f = unpack ({"abood", "Haitham", "aziz", "khaled"})
Dialog.Message("Notice", f, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
ذكرنا سابقا أن كلمة unpack هى تعليمة برمجية محجوزة و تعمل على تفكيك المصفوفات
وعلى ضوء توضيحاتنا فى الأعلى فإن نتيجة تفكيك المصفوفة السابقة يخزن فى المتغير f فقط التفكيك الأول للمصفوفة وهو القيمة abood
وذلك لأنة المتغير الأول
لذلك لتخزين القيم الباقية يجب وضع متغيرات لها أو بمعنى إضافة متغيرات مع المتغير f
إذن على سبيل المثال كان الكود التالى :
كود PHP:
f , b , d , y = unpack ({"abood", "Haitham", "aziz", "khaled"})
Dialog.Message("Notice", f, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Dialog.Message("Notice", b, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Dialog.Message("Notice", d, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
Dialog.Message("Notice", y, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
عند عمل معاينة للكود السابق من خلال 4 رسائل توضيحية فيكون :




وبهذا قد عرضنا نتيجة تفكيك المصفوفة السابقة بإستخدام الكلمة المحجوزة unpack

ثانيا : بواسطة الكود المخصص للتعامل مع المصفوفات والمدمج فى أكواد البرنامج ضمن مجموعة تسمى Table

هذا الكود يعمل على إرجاع كل القيم الموجودة فى الجدول ويتم الفصل بين القيمة و الأخرى من خلال تحديد محدد أو فاصل من إختيارك
ويحتوى هذا الكود على 4 بارامترات Parameters وهم :
SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول
Separator وهو المحدد الذى يتم إختيارة لفصل القيم الموجودة فى الجدول
Start وهو القيمة التى يراد البدأ عندها فى الجدول بمعنى الرقم
End وهو القيمة التى يراد الإنتهاء عندها فى الجدول بمعنى الرقم فإذا كان المراد هو الإنتهاء عند آخر قيمة فى الجدول فيمكن إستخدام 1 -
أو يمكن إستخدام المتغير المحجوز و المعبر عن كل القيم المدرجة بالجدول TABLE_ALL

كود PHP:
t = {"abood" , "Haitham" , "aziz" , "khaled"}
result = Table.Concat(t, ";", 1, -1);
Dialog.Message("Notice", result, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
كما هو موضح بالكود أعلاة فإن لدينا جدول أو مصفوفة إسمها t
وتم إستخدام Table.Concat وذلك للحصول على العناصر أو القيم المدرجة فى الجدول أو المصفوفة السابقة وتم إستخدام متغير إفتراضى إسمة result
بغرض تخزين النتيجة بة
ونجد أننا إستخدمنا الفاصلة المنقوطة وذلك بغرض الفصل بين كل عنصر فى المصفوفة أو الجدول
أيضا نجد أننا إستخدمنا رقم 1 وذلك للبدأ من العنصر أو القيمة رقم 1 فى المصفوفة أو الجدول
أيضا نجد أنا إستخدمنا رقم 1- وذلك للتعبير عن القيمة أو الإندكس المراد التوقف عندة وهو فى هذة الحالة سوف يكون آخر قيمة موجودة فى الجدول أو المصفوفة
أو كان ممكنا أن نعوض عن ذلك بالمتغير المحجوز وهو TABLE_ALL

abood;Haitham;aziz;khaled

مجموعة أكواد التعامل مع المصفوفات أو الجداول
إستعراض لمجموعة أكواد أو وظائف التعامل مع المصفوفات أو الجداول فكلا التعبيري صحيح كما بالصورة التالية :

أولا : Table.Concat


ثانيا : Table.Count
تعمل هذة الوظيفة على معرفة عدد العناصر الموجودة فى الجدول
ويحتوى هذا الكود على 1 بارامترات Parameters وهو :
SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول

كود PHP:
t = {"abood" , "Haitham" , "aziz" , "khaled"}
result = Table.Count(t);
Dialog.Message("Notice", result, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
كما هو موضح بالكود أعلاة فإن لدينا جدول أو مصفوفة إسمها t
وتم إستخدام Table.Count وذلك للحصول على عدد العناصر أو القيم المدرجة فى الجدول أو المصفوفة السابقة وتم إستخدام متغير إفتراضى إسمة result
بغرض تخزين النتيجة بة


ثالثا : Table.Insert
يستخدم هذا الكود أو هذة الوظيفة لإجراء تعديلات إدخال عناصر على مصفوفة أو جدول معلوم مسبقا أى بمعنى أن يكون الجدول قد أعلن عنة مسبقا فربما نكون بصدد إنشاء جدول جديد
ونريد إدخال قيم أو عناصر فية وكما ذكرنا سابقا فى الشرح السابق عن طريقة الإعلان عن جدول يكون بفتح قوسين كبيرين و عمل إسم إفتراضى متغير للتعامل معه
و كمثال مرة أخرى على ذلك سوف ننشئ أو نعلن جدول جديد فارغ من أى عناصر كالتالى :
كود PHP:
k = {}
ففى الحالة السابقة أعلنت عن جدول فارغ إسمة k
ولإدخال عناصر بهذا الجدول يمكن بالوظيفة التى نتكلم عنها حاليا Table.Insert
الطريقة الأخرى التى تستخدم فيها هذا الكود هو عند التعامل مع جدول موجود بالفعل ومحتوى على عناصر
ويحتوى هذا الكود أو الوظيفة على 3 بارامترات Parameters وهم :
SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول
Position وهو المكان أو المفتاح أو رقم الإندكس أو الترتيب المراد الإدخال إلية فى المصفوفة
Value وهو العنصر أو القيمة المراد إدخالها فى الجدول

كود PHP:
t = {"abood" , "Haitham" , "aziz" , "khaled"}
Table.Insert(t, 4, "أبو يوسف");
هنا فى الكود السابق قمنا بإدخال عنصر أو قيمة جديدة "أبو يوسف" فى الترتيب الرابع فى المصفوفة t
إذن سوف يصبح شكل المصفوفة النهائى كالتالى بعد إدخال العنصر الجديد لها :
كود PHP:
t = {"abood" , "Haitham" , "aziz" , "أبو يوسف" , "khaled"}

رابعا : Table.Remove
يستخدم هذا الكود أو الوظيفة فى إجراء تعديلات على مصفوفة موجودة فعليا أى مصفوفة معروفة وتحتوى على عناصر هذة التعديلات هى حذف أى عنصر منها وذلك بمعلومية ترتيبة داخل هذة المصفوفة أو الجدول
ويحتوى هذا الكود أو الوظيفة على 2 بارامترات Parameters وهم :
SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول
Position وهو المكان أو المفتاح أو رقم الإندكس أو الترتيب المراد الإدخال إلية فى المصفوفة

كود PHP:
t = {"abood" , "Haitham" , "aziz" , "أبو يوسف" , "khaled"}
s = Table.Remove(t, 1);

وبالتالى فقد تم حذف abood من المصفوفة t

كود PHP:
t = {"Haitham" , "aziz" , "أبو يوسف" , "khaled"}

خامسا : Table.Sort
تستخدم هذة الوظيفة بغرض ترتيب العناصر داخل المصفوفة إما ترتيبا رقميا أو أبجديا وتصاعديا أو تنازليا
ويحتوى هذا الكود أو الوظيفة على 2 بارامترات Parameters وهم :
SourceTable وهو إسم المصفوفة أو المتغير المعبر عن المصفوفة أو الجدول
Compare وهى وظيفة مقارنة بين آرجين أو بارامترين و من ثم إعادة قيمة بولينية لهذة الوظيفة فى حالة تحقق الشرط أو عدم تحقق الشرط
وهذة المقارنة تتم بواسطة أو عن طريق إستخدام علامة أكبر من أو علامة أصغر من
ومثال لهذة الوظيفة مع إمكانية تغيير علامة أكبر من إلى علامة أصغر من فى عملية المقارنة وذلك طبقا للترتيب المراد تصاعديا أو تنازليا :
كود PHP:
function sorter(v1,v2)
if (v1 > v2)then
return true;
else
return false;
end
end



كود PHP:
function sorter(v1,v2)
if (v1 > v2)then
return true;
else
return false;
end
end
t = {"Abood" , "Haitham" , "Aziz" , "Khaled"}
Table.Sort(t, sorter);


بمعنى أنة لن يعترف فى الترتيب النصى بحروف صغيرة فى أول النص










تعليق