العودة   دروس البرمجة والصيانة > دروس البرمجه > دروس php






ne nw

التكرارات والمصفوفات الجزء الرابع

se sw


الرئيسية أضف درس الجديد الاكثر شهرة البحث

التكرارات والمصفوفات الجزء الرابع
قديم 06-01-2008 05:31 PM
alwatany2010 alwatany2010 غير متواجد حالياً
مشرف
 
تصنيف: دروس php
المشاهدات: 49
مشاركات: 0
هناك الكثير من الدوال التي يمنحنا إياها الـPHP للتعامل مع المصفوفات والتي لايكفي الوقت لذكرها الآن سنقوم بشرح أهم دالتين والمستخدمة بكثره وهي array_push() و array_pop()
لنفرض أننا قمنا بإنشاء مصفوفة بالشكل التالى :
كود PHP:
<?
$arr
5]=”majed”;
arr 85]=”khaled”;
arr 35]=”mohmed”;
arr 19]=”hajeer”;
?>
وأردنا أن نضيف عنصر جديد لها فقمنا بالتالى :
كود PHP:
<?
arr 5]=”majed”;
arr 85]=”khaled”;
arr 35]=”mohmed”;
arr 19]=”ahmad”;
arr [ ]=”ali”
?>
انظر إلى العنصر الأخير الذي سيعطيه الـPHP رقم الفهرسة (index) وسيكون رقم فهرسته هو 86 .
نريد أن نلفت نظرك بأننا نستطيع عمل إضافة لعنصر على المصفوفة بطريقة أخري وهي عن طريق الدالة array_push() كالتالى :
array_push (ArrayName اسم المصفوفه,Elemnt1, Elemnt2, Elemnt3,…..)
نضع في القسم الأول من الدالة اسم المصفوفة التي نريد إضافة العنصر لها ونضع في القسم الثاني عنصر واحد أو أكثر وهي التي سيتم إضافتها للمصفوفة .
مثال :
كود PHP:
<?
arr 5]=”majed”;
arr 85]=”khaled”;
arr 35]=”mohmed”;
arr 19]=”hajeer”;
array_push ($arr,ali)
?>
مثال :
كود PHP:
<?
arr 5]=”majed”;
arr 85]=”khaled”;
arr 35]=”mohmed”;
arr 19]=”hajeer”;
array_push ($arr,ali,salem,sameer,thamer)
?>
ولو أردنا حذف مثلاً عنصر من المصفوفة فإننا نقوم بتعريف المصفوفة من جديد أو يمكننا استخدام الدالة array_pop التي تقوم بحذف آخر عنصر من المصفوفة والتي تتطلب فقط اسم المصفوفة
Array_pop(ArrayName اسم المصفوفه)
مثال :
كود PHP:
<?
arr 5]=”majed”;
arr 85]=”khaled”;
arr 35]=”mohmed”;
arr 19]=”hajeer”;
array_pop($arr)
?>

سيتم حذف العنصر hajeer من المصفوفة ولن يكون في المصفوفة غير ثلاث عناصر .
Implode و Explode
تقوم هذه الدالتين باقتصاص قيمة معينة من مصفوفة أو نصوص وتقوم بإضافة قيمة معينة على مصفوفة أو نصوص .
الدالة Implode
تقوم بإضافة قيمة بين عناصر المصفوفة .
مثال :
Click the image to open in full size.
الدالة explode
تقوم بحذف قيمة من مصفوفة وذلك لايعني حذف عناصر من المصفوفة .
مثال :
كود PHP:
<?
$stng 
=array ("\tmajed\t""\tsalem\t""\tali\t""\tahmad\t");
كود PHP:
[right][left]$r =implode ("-",$stng);
echo 
$r;
echo 
"<br>";[/left][/right][left][/left]
[
right][left]for($i=0;$i<=4;$i++)
{
$r explode ("\t",$stng[$i]);
echo 
$r[1];
echo 
$r[2];
echo 
$r[3];
echo 
$r[4];
}
?>[/left][/right] 
HTTP_GET_VARS و HTTP_POST_VARS
هذه ليست متغيرات بل مصفوفات ، نعم هذه مصفوفات ولكن في ماذا نستخدمها ولماذا ؟
في الواقع تحدثنا في الدرس السابق عن طريقة التعامل مع النماذج والحصول على البيانات من المستخدم وتكلمنا عن أسلوبين لنقل البيانات وهما GET و POST
عندما تصل البيانات محفوظة في متغيرات إلى صفحة الـPHP فإنه يقوم بتعريفها تلقائياً ويمكنك طباعة المتغيرات وقيمها مباشرة من غير تعريف .... ولكن هذه الميزة في الـPHP يمكن إلغاؤها عن طريق الملف PHP.INI وذلك بإغلاق ميزة register_globals
وذلك بوضع off بدلا من on

الوضع الافتراضي لها هو on ولكن تستطيع إغلاقها وقد تكون مستاجراً عند مزود خدمة ويب وسيط فيقوم بإغلاق هذه الميزة من باب الحماية ليس إلا .... لاتقلق يمكنك الحصول على البيانات فهي ما زالت موجودة ولكن يجب عليك أن تقوم بإستخدام هذه المصفوفتين لكي تستخرج البيانات .

لنفرض أنك اشتركت عند مزود ويب وكان قد أغلق ميزة ( register_globals ) حسناً لنفرض أنك قد صنعت نموذجاً يستخدم مربع نص ويحفظ قيمته في متغير اسمه Dorrah ثم بعد ذلك يقوم بإرسال هذه القيمة باستخدام الأسلوب GET إذاً سيكون جزء من الكود في الصفحة الأولى والتي تحتوي على النموذج كالتالى
Click the image to open in full size.
يمكنك صناعة مصفوفات بداخل مصفوفات على حسب ماتحتاجه في معلوماتك الرياضية فقد تحتاج مثلاً إلى إنشاء أشياء معقدة (ومقلقة نفسياً) نريد أن نخبرك على أية حال أنه يمكنك صناعة المصفوفات المتعددة الأبعاد ويمكنك استخدام حتي مائة مصفوفة متداخلة ولكن يجب أن تراعي حجم الذاكرة المستخدمة في السيرفر لديك (وعلى كل حال إن استطعت أن تقوم بالتركيز في صناعة عشر مصفوفات متداخلة بدون أي مشاكل أو مرض نفسي أو .... فأنت تستحق جائزة) .
يمكننا كتابة مصفوفة متداخلة كالتالى :
كود PHP:
<? 
$mon
= array (1=>array ("sharkeh al-jafali",154786) ,=> array ("majed  sa",1257) ); 
while (list(
$personnum) =each ($mon))
{
echo (
"<br>$personnum<br>");
كود PHP:
[right][left]while (list(,$phone)=each ($mon[$personnum]))
    {
     echo (
"$phone"); 
     }
}
?>[/left][/right] 
الشرح
هذا المثال قد يكون غامضاً جداً لكن فكرته بسيطة أولاً افترض أنك تعلم عن list..each جيداً وتعرف صيغة التكرار الذي يستخدمهما .
الآن لدينا مصفوفة تتكون من رقمين للفهرسة هذين الرقمين كل واحد منهما عنصره عبارة عن مصفوفة هذه المصفوفة تحتوي على عنصرين ( ولنتناسي أنهما يحتويان على أرقام فهرسة ) وهما اسم شخص ورقم هاتفه .
في أول خطوة :
كود PHP:
while (list($personnum) =each ($mon))
{
echo (
<br>$personnum”); 
قمنا بإخراج رقم الفهرسة الأساسي للمصفوفة والذي يعتبر هو الرقم التسلسلي للاشخاص أصحاب الهواتف ومن بعد ذلك يقوم بطباعة هذا الرقم التسلسلي ويبدأ من سطر جديد .
في الخطوة الثانية :

كود PHP:
while (list(,$phone)=each ($mon[$personnum]))
    {
     echo (
"$phone"); 
     } 


نقوم بإخبار الـPHP بطباعة العناصر الذي تحتويها المصفوفة التى تم طباعة رقم فهرستها ، ولاحظ (,$phone) أنها تشير إلى عناصر مصفوفة وليس فهارسها لأننا تجاهلنا فهارس المصفوفة الداخلية .
لاتقلق الأمر سهل ولكنه يحتاج الى تدرب فقط ، وعليك أن تتدرب وصدقني أنني حاولت ان أبسط المثال من أجلك ... أتمني أن تكون قد فهمت .
تطبيق عملي
افتح محرر النصوص لديك واكتب الكود التالي :
كود PHP:
<?
Echo "<form method =post action = 'exam2.php' " 
$boy=array ("أحمد" "خالد""سعد","حسن");
while (list(,
$Name) = each ($boy))
{
echo 
"ماهي السنة الدراسية لـ $Name ؟";
Echo 
"<select name = 'school[]'>
<option>اول ثانوي</option>
<option>ثاني ثانوي</option>
<option>ثالث ثانوي</option>
</select>"
;
echo 
"<br><br>";
echo 
"<input type =hidden name =boy[] value ='$Name'>";
}
echo 
"<input type =submit ></form>";
?>
احفظ الكود باسم exam.php
افتح محرر النصوص واكتب الكود التالي واحفظه في ملف باسم exam2.php
كود PHP:
<html dir = "rtl">
<?
While (list($I,$V)=each($school))
{
     
$friendschool[] = $school[$I].$boy[$I];
}
asort ($friendschool);
While (list (
$I,$V)=each($friendschool))
{
echo 
"<br>$boy[$I]"."  ".$school[$I];
}
?>
قم بتشغيله بعد نقله لمجلد السيرفر
الشرح
الذي قمنا به في المثال السابق هو أننا قمنا بإنشاء مصفوفة لعده أشخاص ($boy) ونريد أن نعرف مرحلهم الدراسية في الثانوية فأنشأنا لكل طالب قائمة منسدلة بواسطة التكرار (list-each) بصناعة قوائم منسدلة وحقول مخفية يتم تخزين قيم الحقول (التي تحتوي على أسماء الأشخاص) في المصفوفة ($boy) وسيتم تخزين نتائج كل القوائم في مصفوفة ($school) وبعد أن يختار المستخدم الإجابات التي تناسبه وارسال البيانات سيتم استقبال المصفوفة التي فيها نتائج القوائم المنسدلة ($school) واستقبال المصفوفة التي فيها أسماء الأشخاص ($boy) ومن ثم يتم إنشاء مصفوفة جديدة باسم $friendschool[] ويؤخذ منها معلومات المصفوفتين ويتم دمجها فيها ومن ثم يتم بتكرار آخر طباعة عناصر المصفوفتين $boy و$school .
الدالة count
تقوم بحساب عدد العناصر الموجودة في المصفوفة
مثال :
كود PHP:
<?
$c
=array("a","b","c");
$v=count($c);
echo 
$v;
?>


الكلمات الدليلية: لا يوجد
أرسل الصفحة لصديق

تقييم الدرس:



 

درس - دروس - شرح - دورة - تعليميه - درس

ne nw
se sw






جديد على الموقع؟ تريد مساعدة؟

الساعة الآن 08:44 PM.


شبكة الوطنية الثقافية
تنويرية - تعليمية - ترفيهية - حوارية - اسلامية - عربية
جميع الحقوق محفوظة © 2005-2008

منتديات مدونات مجموعات معارض صور نكت برامج مواقع العاب الجوال
المرئيات السوق محطات برمجة فكر صحة أدب حواء اسلاميات

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34