06 by mr7oda3

VIEWS: 6 PAGES: 18

More Info
									                            ‫التكرارت والمصفوفات‬
‫واآن‬   ‫لقد اخذنا في الدرس السابق شيئا من أساسييا الرمم ية وهي اليدواا الطيم ية وصياا ة القيمارا‬
                              ‫نحن نت ه إلى شي يحب جهاز الكمري تم مله وه التكمار والمصف فا .‬

‫في ال اقع قد يك ن لديك ي ميا شي تفعله بطكل مستمم مثل اإلفطار في الصراح الراكم والا م مساء ، انيك‬
                      ‫تستمم لى هذا الموتين دائما .... نحن نسمي هذا الطي في لغة الرمم ه التكمار .‬

‫هااك شي آخم يسمي المصف فا ... في ال اقع قيد يحتي د درم مكتريك ال اصية بالكتيب ليى يدة أدرام‬
‫الدرم االوا ماها يحت د لى الكتب اإلسيممية واليدرم الثياني ماهيا يحتي د ليى الكتيب المياييية واليدرم‬
   ‫الثالث يحت د لى كتب المياييا ... أو لافمض أنيك ميدرس فيي إحيدد الميدارس وليديك جيدوا للحصي‬
‫ففي الحصة األولى لديك مثم تدريس مادة المياييا .... والحصة الثانية لديك تدريس ميادة العلي م والثالثية‬
‫لديك تدريس مادة الكيمياء .... إن حصصك ممترة بطكل معين مع أنها كلها تسمي حصي إال أن كيل حصية‬
          ‫ت تلف ن األخمد في المادة ! وهي ممتره بطكل تصا دد (الحصة االولى ، الثانية ،الثالثة .....) .‬

‫رارة ن متغيم اسمه ثابت ولها اكثم من قيمة وكل قيمية‬         ‫نسمي هذه التقاية بالمصف فا .... المصف فا‬
‫لها رقم معين ولكي تحصل لى القيمة فانك تكتب المتغيم ثيم رقيم القيمية التيي فييه، اليطيتم أن تكي ن‬
‫هذه القيم متسلسلة فقد يك ن هااك قيمتين ولكل قيمة رقم ي تليف تماميا ويرعيد كيل الرعيد ين القيميه‬
                                 ‫الثانية مثاا رقم 1 و 258 كمهما م تلف تماما ويرتعد كل الرعد ن االخم .‬
‫إن دمج ميزة التكمارا مع المصف فا يسا دك لى ت فيم دد األسطم للك د ويسا دك ليى صياع أشيياء‬
                                                                 ‫يرة في أقل دد ممكن من األسطم .‬

                                                                                            ‫التكرارات‬
   ‫رارة ن تكمار أمم معين بعدد معين من المما ولقيد اخيذنا سيابقا اليدواا الطيم ية أو العريارا‬      ‫التكمارا‬
  ‫الطم ية باألصح ف جدنا أن الك د الذد نكتره في العرارا الطم ية ال تتافذ إال ادما يك ن الطم صحيحا‬
‫أيضا التكمار فهي ت ترم الطم فإذا كانت قيمته صحيحة فإنها تق م بعمل الك د المطل ب ثيم تقي م بإ يادة‬
‫اخترار القيمة فإذا كان صحيحا فإنها تق م بإ ادة تافيذ الك د وهكذا ، أما ادما ال يك ن الطم صيحيحا فإنهيا‬
                   ‫تت قف ن تافيذ الك د ويتم اكماا الرمنامج بطكل ادد ... هااك ثمثة أن اع من التكمارا .‬
                                                      ‫إن أوا دالة نق م بأخذها في الرداية هي الدالة ‪while‬‬

                                                                                     ‫التكرار ‪while‬‬
                                     ‫لقد قماا بأخذ التكمار ‪ while‬ألنه بسيط جدا وصيغه هذا التكمار هي :‬
‫‪While (condition‬‬     ‫( شم‬
‫{‬
‫‪code‬‬
‫}‬
                                                                                                  ‫مثاا :‬
‫?<‬
‫; 01= ‪$d‬‬
‫)51<‪while ($d‬‬
‫{‬
‫;”>‪echo “$d <br‬‬
‫;++‪$d‬‬
‫}‬
‫>?‬
‫سيق م الي‪ PHP‬أوال بإ طاء المتغيم ‪ $d‬القيمة 11 ثم يق م بعيد بريدء التكيمار ‪ while‬فيإذا كيان الطيم صيحيحا‬
‫(وه أن المتغيم أصغم من المقم 51) فإنه يق م بتافيذ الك د اليذد بيين األقي اس و ميل هيذا الكي د أن يقي م‬
‫بطرا ة المتغيم ثم يق م بإيافة واحد ليى القيمية الم جي دة فيي المتغييم ‪ $d‬ثيم بعيد ذليك سييتم اختريار‬
‫الطم ممة ثانية فإذا كان صحيحا فسيتم نفس العملية حتي يك ن الطم غيم صحيح فيت قف ادها التكمار‬
                                                                 ‫ويتم إكماا الك د التي تقع بعد االق اس .‬
                                        ‫إذا لم تقم ب يع حد للتكمار فلن يت قف التكمار وقد يك ن النهائي ....‬
                                                                                                   ‫مثاا :‬
‫?<‬
‫; 01= ‪$d‬‬
‫)51<‪while ($d‬‬
‫{‬
‫;”>‪echo “$d <br‬‬
‫}‬
‫>?‬
‫سيتم را ة المقم 11 ولن يت قف التكمار ألن الطم صيحيح دائميا ولييس هاياك ماي قفيه بياميا فيي الكي د‬
‫السابق استطعاا إيقاف الك د بسرب أناا كاا نضيف واحد لى القيمة الم ج دة في المتغيم وكلما يتم ا ادة‬
                  ‫اخترار الك د كل ما تتغيم القيمة حتي يصرح الطم غيم صحيح بسرب أن ‪ $d‬أكرم من 51 .‬

                                                                                   ‫التكرار ‪do - while‬‬
     ‫الرسيطة وصيغته كالتالى :‬        ‫هذا التكمار يعمل بافس ميقه التكمار األوا إال أنه ي جد بعض االختمفا‬
‫‪do‬‬
‫‪code‬‬
‫;)شم ‪while (condition‬‬
                                                                                                       ‫مثاا :‬
‫?<‬
‫; 51=‪$f‬‬
‫‪do‬‬
‫{‬
‫;”‪echo “$f‬‬
‫++ ‪$f‬‬
‫}‬
‫; )( ‪while‬‬

  ‫سيق م التكمار بتافيذ السطم الم ج د بين الق سين أوال ثيم يقي م بتافييذ بإختريار الطيم فيإذا كيان الطيم‬
‫صحيحا قام بإ ادة العملية الم ج دة بين الق سين وهي إييافة واحيد ليى المتغييم ‪ $f‬وهكيذا حتيي يكي ن‬
‫الطم غيم صحيح فيتم الت قف .. الحظ أناا في التكمار األوا قماا باخترار الطم قرل صاا ة أد مل بياميا‬
                                            ‫في التكمار الثاني قماا بتافيذ الك د أوال ثم قماا بإجماء االخترار .‬

                                                                           ‫التكرار ‪FOR‬‬
‫ي تلف هذا التكمار ن سابقيه لكن وظيفته هي نفس وظيفتهما وهي تكمار األوامم اد حص ا شي معين‬

                                                                                                     ‫الصيغة :‬
‫) اداء مليه لى العداد ‪ ; set counter‬اخترار القيمة ‪ ; test value‬داد ‪For (counter‬‬
‫{‬
‫شفمة ‪code‬‬
‫}‬
                                                                                                       ‫مثاا :‬
‫?<‬
‫)--‪For ($u = 18 ; $u>10 ; $u‬‬
‫{‬
‫;‪echo $u‬‬
‫}‬
 ‫>?‬
‫يتك ن هذا التكمار من ثمثة أقسام .... القسم األوا نضع فيه متغيم يحت د لى قيمية حييث سييردأ التكيمار‬
 ‫العمل من اد هذه القيمة والقسم الثياني نكتيب فييه الطيم اليذد سييق م التكيمار بفحصيه (واليذد هي‬
‫كالمعتاد اخترار لقيمة المتغيم في القسيم االوا ) والقسيم الثاليث نضيع فييه العميل اليذد سيي مد ليى‬
                     ‫المتغيم اد كل تكمار ثم نق م بكتابة ك د التي سيق م بتافيذها التكمار بين الق سين .‬

‫كأناا نق ا للي‪ php‬بطكل امي أن يق م في الرداية بإ طاء المتغيم ‪ $u‬القيمة 21 وقرل ان يق م بتافيذ الك د‬
‫ليه أن يق م بتحليل الطم فإذا كان الطم صحيحا فإنه يقي م بإنقيا واحيد مين المتغييم ‪ $u‬وييتم تافييذ‬
‫الك د حتي يصرح المتغيم‪ $u‬قيمته 9 فيق م الي‪ PHP‬آنذاك بال موم من التكمار والذهاب الي الك د اليذد يليى‬
                                                                                         ‫الق سين .‬

                                                                                          ‫المصفوفات‬
‫لقييد قماييا بتعميييف المصييف فا سييابقا بطييكل بسيييط وحييان ال قييت اآن لاعمفهييا ونعييمف كيفييية ملهييا .‬
‫رارة ن متغيم وهذا المتغيم يحت د ليى أكثيم مين قيمية أو اصيم (‪ )element‬وكيل اصيم ليه‬               ‫المصف فا‬
                                        ‫فهمسة (‪ )Index‬تردأ هذه الفهمسة من الصفم إذا لم تقم بتحديدها‬

                                                                                               ‫مثاا :‬
‫?<‬
‫;”‪$A[ ] = “alfareees‬‬
‫;31 = ] [‪$A‬‬
‫>?‬
       ‫في هذا المثاا سيق م الي‪ PHP‬بإ طاء الفهمسة تلقائيا فسيق م ب يع المقم فتصرح المتغيم فهمسته‬
                                                                                            ‫كالتالى :‬
‫;”‪$A[0] = “alfareees‬‬
‫;31 = ]1[‪$A‬‬
   ‫إناا لم نقم بإدخاا هذه األرقام من تلقاء أنفساا ولكن الي‪ PHP‬قام ب يعها مع أنه يمكااا أن ندخلها بطكل‬
                                                                                ‫ادد فمثم ل كتراا :‬
‫?<‬
‫;”‪$A[0]= “alfareees‬‬
‫;31 = ]1[‪$A‬‬
‫>?‬
‫سيق م اليي‪ PHP‬بأخيذ الفهمسية المعتميدة ولين يضيع أد فهمسية أخيمد يمكاايا أيضيا أن نكتيب أد فهمسية‬
                                                                  ‫والنعتمد لى التمتيب في االرقام .‬

                                                                                                    ‫مثاا :‬
‫?<‬
‫;”‪$A[10 ] = “alfareees‬‬
‫;31 = ]52 [‪$A‬‬
‫>?‬
‫هل الحظت أيضا أناا لم نقم بتعميف ني ع متغييما المصيف فة وقيام اليي‪ PHP‬بتعميفهيا تلقائييا بيدال مايا فميمة‬
‫است دماا قيمة حمفية وممة است دماا رقماُ ورغم ذلك فلم يقم الي‪ PHP‬بعمل أد ا تيماض إييافة إليى ذليك‬
‫فإن الي‪ PHP‬يق م بتحديد دد ااصم المصف فة تلقائيا فه يعيمف ميثم مين المثياا السيابق أن يدد ااصيم‬
                                                                             ‫المصف فة الكلي ه اصمين .‬
    ‫يماحاا الي‪ PHP‬ميزة أخمد وهي دم التقيد باألرقام في الفهمسة فمثم يمكااا است دام حموف ادية .‬

                                                                                                     ‫مثاا :‬
‫?<‬
‫;”‪$A[“a” ] = “alfareees‬‬
‫;31 = ] ”‪$A[“b‬‬
‫>?‬
 ‫الحظ أناا است دماا القيم الحمفية ولم يعتمض اا‪ PHPJ‬بتاتا ويمكااا را ة أد اصم من ااصم المصف فة‬
                                                                                ‫بكل بسا ة .‬

                                                                                             ‫مثاا :‬
‫?<‬
‫;”‪$r [“aa”] = “ahmed ali‬‬
‫;37231 = ]1[ ‪$r‬‬
‫;37231 = ]02[ ‪$r‬‬
‫;]‪echo $r[aa‬‬
‫;]02[‪echo $r‬‬
‫;]"‪echo $r["aa‬‬
‫>?‬

 ‫ايد الطرا يه و ايد كتابتيه بيدون مميا‬    ‫ال فمق بين أن نكتب اليا الحمفيي (‪ )aa‬بيين ممتيي تاصيي‬
                                                      ‫تاصي ... سيق م الي‪ PHP‬بمعمفة ذلك تلقائيا .‬

                                                          ‫أيضا بطميقة أخمد‬    ‫يمكااا تعميف المصف فا‬

‫; )‪$variable = array (elements‬‬

                                                                                             ‫مثاا :‬
‫?<‬
‫;)”‪$t =array (“ahmed”, “ali”, “salem”, “alfarsi‬‬
‫;]0[ ‪echo $t‬‬
‫>?‬
                        ‫يق م الي‪ PHP‬بإ طاء كل اصم من ااصم المصف فة رقم فهمسة فتصرح كالتالى :‬

                        ‫العاصم ‪Element‬‬                           ‫الفهمسه ‪Index‬‬
                              ‫‪Ahmed‬‬                                         ‫1‬
                                    ‫‪Ali‬‬                                     ‫1‬
                                ‫‪Salem‬‬                                       ‫8‬
                                ‫‪alfarsi‬‬                                     ‫3‬

‫إذن القيمة التي سيطرعها الي‪ PHP‬في الاهايه هي ‪ ، ahmed‬الحظ أن الي‪ PHP‬قام بإ طاء رقم الفهمسة وقام‬
                        ‫بالردء من الصفم ولكن يمكااا جعل الي‪ PHP‬يردأ الفهمسة من المقم واحد كالتالي :‬
‫?<‬
‫;)”‪$r = array (1=>”ahmed”, “ali”,”salem”, “alfarsi‬‬
‫>?‬

        ‫اد تعميفك لمقم الفهمسة للقيمة األولى سيق م الي‪ PHP‬بإ طاء أرقام فهمسة بطكل تسلسلي ،‬
                                                             ‫ادئذ ستصرح الفهمسة كالتالى :‬

                        ‫العاصم ‪Element‬‬                           ‫الفهمسه ‪Index‬‬
                               ‫‪ahmed‬‬                                        ‫1‬
                                    ‫‪Ali‬‬                                     ‫8‬
                                ‫‪salem‬‬                                       ‫3‬
                                ‫‪alfarsi‬‬                                     ‫4‬
                                                 ‫هااك ميقة لتك ن أيضا الفهمسة هي رارة ن حموف :‬
‫?<‬
‫;)”‪$r = array (“ss”=>”ahmed”, “sf”=> “ali”, “da”=>”salem”, “bv”=> “alfarsi‬‬
‫>?‬
                                                             ‫ادئذ ستصرح الفهمسة كالتالى :‬

                           ‫العاصم ‪Element‬‬                            ‫الفهمسه ‪Index‬‬
                                 ‫‪Ahmed‬‬                                         ‫‪Ss‬‬
                                       ‫‪Ali‬‬                                     ‫‪Sf‬‬
                                   ‫‪Salem‬‬                                       ‫‪Da‬‬
                                  ‫‪Alfarsi‬‬                                      ‫‪Bv‬‬

                                     ‫ادما نميد تغييم أد اصم في المصف فة فيمكااا مل ذلك برسا ه .‬

                                                                                                 ‫مثاا :‬
‫;”لمياء“ =]‪$r [ss‬‬
                    ‫الحظ أناا قماا بتغييم القيمة من (‪ )ahmed‬الى (لمياء) .... ميقة بسيطة أليس كذلك : )‬

                                                                  ‫قماءه المصف فا واست مام القيم‬
                                                                       ‫تكلماا سابقا ن التكمار ‪For‬‬
                        ‫يمكااا است مام ااصم مصف فة و را تها في بسا ة وت فيم وقت ن ميق التكمارا‬

                                                                        ‫لافمض أن لديك هذه المصف فة :‬
‫?<‬
‫;)”‪$people =array (“ahmed”, “ali”, “salem”, “alfarsi‬‬
‫>?‬

                                               ‫وارد أن تطرع أسماء جميع االش ا المت اجدين فيها‬
‫أوال نحن نعمف أن المصف فة إذا لم نقم بتعميف رقم فهمسة لها فإن الي‪ PHP‬يق م برداية فهمستها من الصيفم‬
‫و لى ذلك فان رقم العاصم األوا 1 ورقم العاصم المابع 3 ... لى ذلك يمكااا بكل بسا ه كتابة الك د التالي‬
                                                                ‫الذد يق م بطرا ة المصف فة كالتالى :‬
‫?<‬
‫;)”‪$people =array (“ahmed”, “ali”, “salem”, “alfarsi‬‬
‫;”>‪echo “$people[0]. <br‬‬
‫;”>‪echo “$people[1]. <br‬‬
‫;”>‪echo “$people[2]. <br‬‬
‫;”>‪echo “$people[3]. <br‬‬
‫>?‬

                ‫لافمض أن لديك ثمثين أو ثمثة آالف اسم في مصف فة ألن تردو هذه الطميقة متعرة قليم !!!‬
                                                          ‫هااك ميقة أخمد وهي ن ميق التكمارا .‬
‫لافمض أناا أردنا كتابة تكمار يق م بطرا ة االرقام من واحد الى طمة فإناا نسيتطيع كتابية التكيمار بالطيكل‬
                                                                                                ‫التالى :‬
‫?<‬
‫)++‪For ($I=1;$I<11;$I‬‬
‫{‬
‫;">‪Echo "$I <br‬‬
‫}‬
‫>?‬
    ‫واآن لاقل أناا نميد را ة األربعة ااصم في المصف فة كل ما لياا ه إجماء ملية بسيطة لى الك د‬
                                                                             ‫لكي يتم ذلك :‬
‫?<‬
‫;)"‪$people =array ("ahmed", "ali", "salem", "alfarsi‬‬

‫)++‪For ($I=0;$I<4;$I‬‬
‫{‬
‫;">‪Echo "$people[$I] <br‬‬
‫}‬
‫>?‬

‫الحظ أناا بدأنا العيداد بالقيمية صيفم ثيم اشيتم اا أن يكي ن أقيل مين 4 ألن آخيم اصيم فيي المصيف فة رقيم‬
‫فهمسته 3 ثم قماا ب عله يزداد بقيمة 1 ألناا نميد را ة جميع ااصم المصف فة وقماا ب يع رقم العداد في‬
   ‫خانة الفهمسة و لى ذلك سيتم في كل تكمار راع اصم المصف فة الذد فهمسته تساود رقم العداد .‬

                      ‫لقد تكلماا سابقا في درس الاماذم ن إخمام القيم من قائمة لى شكل مصف فة .‬

                                                                                                 ‫مثاا :‬
‫>‪<form action = “array.php” method = post‬‬
‫ما ه مطموبك المفضل ؟‬
‫>‪<br‬‬
‫>‪<select name = “a[]” multiple‬‬
‫>‪</option‬شاد>‪<option‬‬
‫>‪</option‬قه ة>‪<option‬‬
‫>‪</option‬كابتطيا >‪<option‬‬
‫>‪</option‬ت >‪<option‬‬
‫>‪</option‬بمتقاا>‪<option‬‬
‫>‪</select‬‬
‫>‪<br‬‬
‫> ”لذيذ“ = ‪<input type=submit value‬‬
‫>‪</form‬‬
                                                                          ‫في ملف الي‪ array.php‬اكتب :‬
‫>‪<html‬‬
 ‫لقد قمت باختيار التالى :‬
‫?<‬
‫)++‪For ($I=0;$I<4;$I‬‬
‫{‬
‫;">‪Echo "$a[$I] <br‬‬
‫}‬
‫>?‬
‫>‪</html‬‬

‫لقد مياا في القائمة خمسة ااصم ... الحظ أناا ويعاا في اسم المتغيم للقائمة ق سين ] [ لكي يتعمف‬
‫الي‪ html‬لى أنه سيتم ت زين الريانا تلقائيا بعد ذلك قام الي‪ PHP‬بفهمسية العااصيم التيي تيم إرسيالها مين‬
‫قرل العميل س اء كانت ثمثة أو أربعة ولكاها بالطرع لن تزيد لى خمسة .... لى ذليك سييك ن آخيم رقيم‬
                                                                             ‫تاتهي به المصف فة ه 4 .‬
             ‫.... يمكااا صاا ة القائمة ن ميق المصف فة أيضا ....‬      ‫تحب المصف فا‬     ‫أت قع أنك اآن بدأ‬

                                                                                                 ‫مثاا :‬
‫>‪<form action = “list.php” method = post‬‬
‫ما ه مطموبك المفضل ؟‬
‫>‪<br‬‬
‫> ”‪<select name = “s‬‬
‫?<‬
‫;)”بمتقاا”,”ت ”,”كابتطيا ”,”قه ة”,”شاد“(‪$shrab =array‬‬
‫)++‪For ($k=0;$k<4;$k‬‬
‫{‬
‫;”>‪echo “<option>”.$shrab[$k].”</option‬‬
‫}‬
‫>?‬
‫>‪</select‬‬
‫>‪</form‬‬

‫اد اختيار المست دم للقيمة سيتم ويعها في المتغيم ‪ $s‬يمكاك مماجعة درس الاماذم لكي تفعل ذليك ،‬
‫هذا المثاا يق م بصاا ة مصف فة للمطموبا ثم يق م بإخماجها في قائمة مما ي فم لياا ال قيت فيي كتابية‬
‫الك د فل كان لديك مثم ح الى مئة دولة فيمكاك ميثم وييعها فيي مصيف فة وبعيد ذليك باياء القائمية التيي‬
                 ‫س ف تق م برااء القائمة التي ستحت د لى هذه الدوا ن ميق المصف فا والتكمارا .‬

‫في ملف إمتداده ‪ php‬وقم بكتابة الملف ‪ list.php‬ا تمادا لى معل ماتيك السيابقة فيي‬        ‫قم بحفظ التغييما‬
                                                                                        ‫درس الاماذم .‬

                                                                              ‫دوال المصفوفات‬
                                                                                      ‫الدالة ‪key‬‬
                                                           ‫لافمض أن لدياا مصف فة مك نة من اصمين :‬
                                                                                            ‫مثاا :‬
‫;)”محمد”,” لى“( ‪$s= array‬‬
                                                                          ‫اآن لاضف إليها هذه السط ر‬
‫?<‬
‫;)”محمد”,” لى“( ‪$s= array‬‬
‫;)‪$t=key ($s‬‬
‫;‪echo $t‬‬
‫>?‬
‫يق م األمم ‪ key‬بإي اد رقم الفهمسه (‪ )index‬العاصم الاطيط حالييا .... وهي اليمقم صيفم حييث أنايا ليم نضيع‬
‫فهمسة وهذه هي الفهمسة التي ويعها الي‪ PHP‬تلقائيا ادما لم نضع فهمسة ... قيد تحييمك كلمية الاطيط‬
                                             ‫لكن ستعمف أناا نستطيع الت ا بين ااصم المصف فة الحقا .‬

                                                                   ‫قد يك ن رقم الفهمسة حموف أو كلما‬

                                                                                                 ‫مثاا :‬
‫?<‬
‫;)”محمد”>=”م”,” لى“>=”ع“( ‪$s= array‬‬
‫;)‪$t=key ($s‬‬
‫;‪echo $t‬‬
‫>?‬
                                                                                  ‫الدالة )(‪current‬‬
                             ‫تق م الدالة ‪ current‬بإي اد القيمة لعاصم المصف فة الحالى (‪. )index value‬‬
                                                                                              ‫مثاا :‬
‫?<‬
‫;)”محمد”>=”م”,” لى“>=”ع“( ‪$s= array‬‬
‫;)‪$p=current ($s‬‬
‫;‪echo $p‬‬
‫>?‬
 ‫في المثاا السابق قماا بإي اد القيمة الحالية للعاصم الاطط .... الحظ أناا أوجدنا باألمم ‪ key‬رقم الفهمسة‬
                                                   ‫بياما أوجدنا باألمم ‪ current‬القيمة للعاصم المفهمس .‬

                                                         ‫كيف يمكااا تاطيط العااصم االخمد للمصف فه ؟!‬
  ‫ا بين ااصم المصف فة ..... لافمض أن‬     ‫يمكااا ذلك ن ميق الدالتين )(‪ next‬و ‪ prev‬اللتان تق مان بالت‬
                                                                     ‫لدياا مصف فة تتك ن من ثمثة ااصم‬
                                                                                               ‫مثاا :‬
‫?<‬
‫;)”احمد”>=”ا”,”محمد”>=”م”,” لى“>=”ع“( ‪$s= array‬‬
‫;”>‪echo key($s).”<br‬‬
‫;”>‪echo current($s) .”<br‬‬
‫>?‬
            ‫ي ي‬                   ‫ي‬     ‫ي‬                     ‫ي‬              ‫ي‬           ‫ي ي‬
‫لقيد قمايا فيي هيذا المثياا بطرا ية قيمية رقيم الفهمسية للعاصيم الحيالى وقيمتيه ( اقصيد بيمقم الفهمسية‬
         ‫الحمف(ع) واقصد بالقيمة ( لى) .... لاقم اآن بالت ا بين ااصم المصف فة ولام نتي ة الطرا ة .‬

                                                                                               ‫مثاا :‬
‫?<‬
‫;)”احمد”>=”ا”,”محمد”>=”م”,” لى“>=”ع“( ‪$s= array‬‬
‫;)‪next($s‬‬
‫;”>‪echo key($s).”<br‬‬
‫;”>‪echo current($s) .”<br‬‬
‫>?‬

‫?<‬
‫;)”احمد”>=”ا”,”محمد”>=”م”,” لى“>=”ع“( ‪$s= array‬‬
‫;)‪next($s‬‬
‫;)‪next($s‬‬
‫;”>‪echo key($s).”<br‬‬
‫;”>‪echo current($s) .”<br‬‬
‫>?‬
  ‫الحظ أناا كتراا الدالة )(‪ next‬قرل أن نق م باإلنتقاا لكي يتم تاطيط العاصم الثاني في أوا مثاا ولتاطيط‬
                                      ‫العاصم الثالث في ثالث مثاا (والحظ أناا كتراا )(‪ next‬ممتين ) .‬

             ‫يمكااا المج ع لتاطيط العاصم السابق ب يع الدالة )(‪ prev‬فمثم يمكااا تعديل المثاا التالى :‬
‫?<‬
‫;)”احمد”>=”ا”,”محمد”>=”م”,” لى“>=”ع“( ‪$s= array‬‬
‫;)‪next($s‬‬
‫;)‪next($s‬‬
‫;)‪prev($s‬‬
‫;”>‪echo key($s).”<br‬‬
‫;”>‪echo current($s) .”<br‬‬
‫>?‬
‫فسيق م الي‪ PHP‬في هذه الحاله را ة العاصم الثاني وليس الثالث ألنه تم التماجع خط ه ن ميق )(‪prev‬‬
                              ‫ماذا سيحصل إذا قماا بإيافة اصم لى مصف فة غيم محدودة الفهمسة ؟!‬
                                  ‫لافمض أن لدياا مصف فة وأيفاا إليها اصم غيم محدد الفهمسة . مثل :‬
‫?<‬
‫;)”احمد”>=44,”محمد”>=5,” لى“>=21( ‪$s= array‬‬
‫;”هطام“ =] [‪$s‬‬
‫;)‪Next($s‬‬
‫;)‪Next($s‬‬
‫;)‪Next($s‬‬
‫;”>‪Echo key ($s).”<br‬‬
‫;”>‪Echo current( $s ).”<br‬‬
‫>?‬

‫سيق م الي‪ PHP‬برسا ة بالرحث ن أكرم رقم فهمسة وبعد ذلك يريدأ بإ طياء الفهمسية تسلسيم بعيده فيإذا‬
‫كانت أرقام الفهمسة حموفا بدأ من الصفم في ا طاء المقم .. والحظ في هذا المثاا بأنه قيام بإ طياء العاصيم‬
       ‫المقم 54 ألن أكرم اصم في المصف فة ه 44 و لى ذلك قام بإ طاء األرقام تسلسم بعد هذا المقم .‬

                                                                              ‫الدالة ‪ List‬و ‪Each‬‬
                                               ‫لافمض أنك قد قمت بصاع مصف فة غيم مفهمسة بالتمتيب‬
                                                                                          ‫مثاا :‬
‫?<‬
‫;)”احمد”>=44,”محمد”>=5,” لى“>=21( ‪$s= array‬‬
‫>?‬
  ‫لى ذلك د اا ن رمك ب رم سار وه أنك تستطيع أن ت عل حياتك مع ‪ PHP‬أسهل مع حياتك مع نفسك !‬
‫)‪ )=each (array‬قيمة العاصم ‪ Index,Element value‬ارقام الفهمسة (‪While (list‬‬
  ‫تستطيع ب اسطة هذه الدالتين و ن ميق التكمار ‪ while‬است مام جميع العااصم الم ج دة في المصف فة‬
‫))‪While (list($e,$r) = each ($s‬‬
‫{‬
‫;”‪echo “<br> $e<br> $r‬‬
‫}‬
‫أوال أنت تق م بتسمية متغيمين واحد ماهما ليمقم الفهمسية (‪ )$e‬والثياني للعاصيم (‪ )$r‬ويمكاايا تسيميتهما‬
‫بأد اسم وفي حالة ما إذا أردنا مض العاصم فقط أو معمفة العاصم فقط فيمكااا حيذف (‪ )$e‬ولكاايا النحيذف‬
                                                                                               ‫الفاصلة‬
‫))‪While (list(,$r) = each ($s‬‬
‫{‬
‫;”‪echo “<br> $e<br> $r‬‬
‫}‬
‫لاعد الى المثاا الذد فيه رقم الفهمسة والعاصم ... سييق م التكيمار ب ييع رقيم الفهمسية (اليذد قيد يكي ن‬
‫نصيا) في المتغيم ‪ $e‬وسيضع قيمية العاصيم اليذد رقيم الفهمسية ليه هي ‪ $e‬فيي المتغييم ‪ $r‬ثيم سييق م‬
                                                            ‫بطرا ة العااصم حتي ياتهي ماها جميعها ...‬
‫ممحظة مهمة : إذا لم تقم بتعميف فهمسة للمصف فة (حموف أو أرقيام أييا كيان) فسييتم اسيت دام العااصيم‬
                                                                          ‫ادما يطلب التكمار الفهارس .‬
                                                                                                ‫مثاا :‬
‫?<‬
‫;)"‪$e=array("fsda","terhfgfd","tewr‬‬
‫))‪While (list ($I,$V)=each($e‬‬
‫{‬
‫;"]‪echo "<br>$e[$I‬‬
‫}‬
‫>?‬

         ‫الحظ مع ‪H‬ناا لراا را ة الفهمسة (‪ )index‬إال أنه تم أخذ العااصم(‪ )elements‬بدال من الفهمسة‬
‫يمكااا ب اسطة هذه الدالة صاا ة أشياء مفيده وكمثاا لذلك لافمض أن لدياا مصف فة أرقام ه اتف ونمييد أن‬
‫ن مم هذه المصف فة لى جدوا ‪ html‬فساستطيع صاا ة هيذا ال يدوا ين مييق التكيمار السيابق بكيل‬
                                                                                         ‫سه لة .‬
                                                                                            ‫مثاا :‬
‫"0"=‪<table align='center' dir = "rtl" border="1" width="100%" cellspacing‬‬
‫>"000000#"=‪bordercolorlight="#000000" bordercolordark="#000000" bordercolor‬‬
‫>‪<tr‬‬
   ‫>‪</td‬االسم>'‪<td align='center‬‬
   ‫>‪</td‬رقم التلف ن>'‪<td align='center‬‬
  ‫>‪</tr‬‬
‫?<‬
‫;) ادا" ,445454=>"سالم" , 362544">=856( ‪$s = array‬‬
‫))‪While (list($e,$r) = each ($s‬‬
‫{‬
‫;">‪echo "<tr><td align='center'>". $r . "</td><td align='center'>" .$e . "</td></tr‬‬
‫}‬
‫>?‬
‫>‪</table‬‬
‫أرايت كيف است مجاا جميع أرقام التلف نا في جدوا ب اسطه تكمار بسيط ، يمكاك صاا ة األكثيم واختصيار‬
‫الكثيم من ال قت لى ذلك إذا كانت المصف فة تحت د لى المئا من األرقام ب اسطة هذا الك د بيدال مين‬
                                          ‫أن تكتب الك د لى شكل ‪ html‬وتكتب الريانا وتتعب نفسك .‬

     ‫يمكاك أيضا معمفة دد العااصم في مصف فة معياة إذا كات تميد معمفة ددها وذلك بالطميقة التالية :‬
‫?<‬
‫;)”احمد”>=44,”محمد”>=5,” لى“>=21( ‪$s= array‬‬
‫;0=‪$S‬‬
‫))‪While (list($E,$r) = each ($s‬‬
‫{‬
‫;++‪$S‬‬
‫}‬
‫;++‪ ” . $S‬دد ااصم المصف فه “ ‪ECHO‬‬
‫>?‬

                                                                                      ‫فرز المصفوفات‬
‫. نحين سياأخذ نظيمة ين ال مسية دواا‬      ‫هااك العديد من الدواا التي ي فمها لايا اليي‪ PHP‬لفيمز المصيف فا‬
                                                                                       ‫األكثم است داما :‬

                                                                                       ‫الدالة )(‪Sort‬‬
‫هذه الدالة من أساسيا فمز المصف فا وهي جدا أساسية وهي تق م بأخذ محت يا المصف فة ومين ثيم‬
‫تق م بفمزها ه ائيا ا تمادا لى األحمف الكريمة أوال ثم الصغيمة .. تتطلب هذه الدالة اسم المصيف فة التيي‬
                                                                                    ‫سيتم ليها الفمز‬

‫;)‪Sort (ArrayName‬‬
                                                            ‫إذا قماا بإنطاء مصف فة بالطكل التالى :‬
‫;(”‪$NaNo=array (“ali”,“salem”,“hythem”,“Khaled”,“Ammar”,“Hesham‬‬
                               ‫فإذا أردنا فمزها ن ميق الدالة )(‪ sort‬فإناا نق م باست دامها كالتالى :‬
‫?<‬
‫;(”‪$NaNo=array (“ali”,“salem”,“hythem”,“Khaled”,“Ammar”,“Hesham‬‬
‫;)‪sort($NaNo‬‬
‫))‪While (list($e,$r) = each ($NaNo‬‬
‫{‬
‫;”‪echo “<br> $e<br> $r‬‬
‫}‬
‫>?‬

     ‫الحظ أنه اد تافيذك للمثاا ست د أن الي‪ PHP‬قام بالفمز ا تمادا لى األحمف الكريمة أوال ثم قام بالفمز‬
                                                                     ‫بعدها ا تمادا لى األحمف الصغيمة .‬

                                                                                       ‫الدالة )(‪Arsort‬‬
    ‫هذه الدالة تعمل نفس ملية الدالة )(‪ sort‬ولكن هااك اختمف بسيط فمثم ل كتراا المصف فه كالتالى :‬
‫;)”‪$NaNo=array ( “ad”=>”ahmed”, “kh”=> “khaled‬‬
                                               ‫وأردنا فمزها و را ة الفهارس والقيم كما في المثاا التالى :‬
‫?<‬
‫;)”‪$NaNo=array ( “ad”=>”ahmed”, “kh”=> “khaled‬‬
‫;)‪sort($NaNo‬‬
‫))‪While (list($e,$r) = each ($NaNo‬‬
‫{‬
‫;”‪echo “<br> $e<br> $r‬‬
‫}‬
‫>?‬
                                                                ‫قارن ناتج المثاا السابق مع هذا المثاا :‬
‫?<‬
‫;)”‪$NaNo=array ( “ad”=>”ahmed”, “kh”=> “khaled‬‬
‫;)‪asort($NaNo‬‬
‫))‪While (list($e,$r) = each ($NaNo‬‬
‫{‬
‫;”‪echo “<br> $e<br> $r‬‬
‫}‬
‫>?‬
‫ا تقد انك قد مفت الفمق ففي المثاا االوا قامت الدالة ‪ sort‬باسترداا الحموف بأرقام في الفهمسية أميا‬
                 ‫في المثاا الثاني فقد تم ويع الحموف كما هي وتم فمزها كما تفعل الدالة ‪ sort‬في الفمز .‬
               ‫باختصار الي جد فمق بين ‪ sort‬و ‪ asort‬إال في أن الدالة ‪ sort‬تستردا فهمسة الحموف بأرقام .‬

                                                                       ‫الدالة )(‪ Rsort‬و ‪arsort‬‬
                                ‫تق م بافس مل ‪ sort‬و ‪ asort‬ولكن بطكل كسي جمب األمثلة التالية :‬
                                                                                        ‫مثاا :‬
‫?<‬
‫;)”‪$NaNo=array ( “ad”=>”ahmed”, “kh”=> “khaled‬‬
‫;)‪rsort($NaNo‬‬
‫))‪While (list($e,$r) = each ($NaNo‬‬
‫{‬
‫;”‪echo “<br> $e<br> $r‬‬
‫}‬
‫>?‬
                                                                                                 : ‫مثاا‬
<?
$NaNo=array ( “ad”=>”ahmed”, “kh”=> “khaled”);
arsort($NaNo);
While (list($e,$r) = each ($NaNo))
{
echo “<br> $e<br> $r”;
}
?>
                                ‫ ولكن بطكل كسي‬sort ‫ تق م بافس ملية الدالة‬rsort ‫ست د أن الدالة‬
                                       . ‫ ولكن بطكل كسي‬asort ‫ تق م بافس ملية‬arsort ‫أيضا الدالة‬
       ) ‫يمكاك استعماا كل هذه الدواا في الفمز مع الحموف العمبية ( إذا كان السيمفم يد م اللغة العمبية‬
                                                                              : ‫قم بتطريق المثاا التالى‬
RSORT()
<?
$NaNo=array ( "ad"=>"‫" ,"سالم‬kh"=> "‫;)"احمد‬
rsort($NaNo);
While (list($e,$r) = each ($NaNo))
{
echo "<br> $e<br> $r";
}
?>
<br>--------<br>
ARSORT()
<?
$NaNo=array ( "ad"=>"‫" ,"احمد‬kh"=> "‫;)"أحمد‬
arsort($NaNo);
While (list($e,$r) = each ($NaNo))
{
echo "<br> $e<br> $r";
}
?>
<br>--------<br>
ASORT()
<?
$NaNo=array ( "ad"=>"‫" ,"هاشم‬kh"=> "‫;)"جماا‬
asort($NaNo);
While (list($e,$r) = each ($NaNo))
{
echo "<br> $e<br> $r";
}
?>
<br>--------<br>
SORT()
<?
$NaNo=array ( "ad"=>"‫" ,"هاشم‬kh"=> "‫;)"جماا‬
sort($NaNo);
While (list($e,$r) = each ($NaNo))
{
echo "<br> $e<br> $r";
}
?>
                                                                                          ‫الدالة ‪ksort‬‬
     ‫تكلماا سابقا ن ميقة فمز المصف فا ولكن نميد أن نلفت نظيمك أنايا كايا نعتميد ليى العاصيم فيي الفيمز‬
                             ‫(‪ )element‬ولكن هذه الدالة تق م باال تماد لى رقم الفهمسه في الفمز (‪)index‬‬
‫‪sort‬‬                                                                                            ‫مثاا :‬
     ‫>‪<br>--------<br‬‬
     ‫)(‪asort‬‬
     ‫?<‬
     ‫;)"جماا" >="‪", "kh‬هاشم">="‪$NaNo=array ( "ad‬‬
     ‫;)‪asort($NaNo‬‬
     ‫))‪While (list($e,$r) = each ($NaNo‬‬
     ‫{‬
     ‫;"‪echo "<br> $e<br> $r‬‬
     ‫}‬
     ‫>?‬
     ‫>‪<br>--------<br‬‬
     ‫)(‪ksort‬‬
     ‫?<‬
     ‫;)"جماا" >="‪", "kh‬هاشم">="‪$NaNo=array ( "ad‬‬
     ‫;)‪ksort($NaNo‬‬
     ‫))‪While (list($e,$r) = each ($NaNo‬‬
     ‫{‬
     ‫;"‪echo "<br> $e<br> $r‬‬
     ‫}‬
     ‫>?‬
                                          ‫لقد ا تمد الي‪ php‬لى ‪ index‬ولم يعتمد لى الي‪ element‬في الفمز .‬

                                                                   ‫دوال المصفوفات اإلضافيه‬
        ‫هااك الكثيم من الدواا التي يماحاا إياها الي‪ PHP‬للتعامل مع المصف فا والتي اليكفي ال قت لذكمها اآن‬
                      ‫ساق م بطمح أهم دالتين والمست دمة بكثمه وهي )(‪ array_push‬و )(‪array_pop‬‬

                                                          ‫لافمض أناا قماا بإنطاء مصف فة بالطكل التالى :‬
      ‫?<‬
      ‫[‪$saher‬‬   ‫;”‪5]=”salem‬‬
      ‫[‪$saher‬‬   ‫;”‪85]=”khaled‬‬
      ‫[‪$saher‬‬   ‫;”‪35]=”mohmed‬‬
      ‫[‪$saher‬‬   ‫;”‪19]=”hajeer‬‬
      ‫>?‬
                                                             ‫وأردنا أن نضيف اصم جديد لها فقماا بالتالى :‬
      ‫?<‬
      ‫[‪$saher‬‬   ‫;”‪5]=”salem‬‬
      ‫[‪$saher‬‬   ‫;”‪85]=”khaled‬‬
      ‫[‪$saher‬‬   ‫;”‪35]=”mohmed‬‬
      ‫[‪$saher‬‬   ‫;”‪19]=”hajeer‬‬
      ‫[‪$saher‬‬   ‫;”‪]=”Alfarees‬‬
      ‫>?‬

             ‫انظم إلى العاصم األخيم الذد سيعطيه الي‪ PHP‬رقم الفهمسة (‪ )index‬وسيك ن رقم فهمسته ه 68 .‬
        ‫نميد أن نلفت نظمك بأناا نستطيع مل إيافة لعاصم لى المصف فة بطميقة أخمد وهي ن ميق الدالة‬
                                                                          ‫)(‪ array_push‬كالتالى :‬

      ‫)..…,3‪,Elemnt1, Elemnt2, Elemnt‬اسم المصف فه‪array_push (ArrayName‬‬
‫نضع في القسم األوا من الدالة اسم المصف فة التي نميد إيافة العاصم لها ونضع في القسم الثاني اصم‬
                                                 ‫واحد أو أكثم وهي التي سيتم إيافتها للمصف فة .‬
                                                                                        ‫مثاا :‬
‫?<‬
‫;”‪$saher[ 5]=”salem‬‬
‫;”‪$saher[ 85]=”khaled‬‬
‫;”‪$saher[ 35]=”mohmed‬‬
‫;”‪$saher[ 19]=”hajeer‬‬
‫)‪array_push ($saher,Alfarees‬‬
‫>?‬
                                                                                        ‫مثاا :‬
‫?<‬
‫;”‪$saher[ 5]=”salem‬‬
‫;”‪$saher[ 85]=”khaled‬‬
‫;”‪$saher[ 35]=”mohmed‬‬
‫;”‪$saher[ 19]=”hajeer‬‬
‫)‪array_push ($saher,Alfarees,salem,sameer,thamer‬‬
‫>?‬

   ‫ول أردنا حذف مثم اصم من المصف فة فإناا نق م بتعميف المصف فة من جديد أو يمكااا است دام الدالة‬
                ‫‪ array_pop‬التي تق م بحذف آخم اصم من المصف فة والتي تتطلب فقط اسم المصف فة‬

‫)اسم المصف فه ‪Array_pop(ArrayName‬‬

                                                                                           ‫مثاا :‬
‫?<‬
‫;”‪$saher[ 5]=”salem‬‬
‫;”‪$saher[ 85]=”khaled‬‬
‫;”‪$saher[ 35]=”mohmed‬‬
‫;”‪$saher[ 19]=”hajeer‬‬
‫)‪array_pop($saher‬‬
‫>?‬
                    ‫سيتم حذف العاصم ‪ hajeer‬من المصف فة ولن يك ن في المصف فة غيم ثمث ااصم .‬

                                                                          ‫‪ Implode‬و ‪Explode‬‬
 ‫وتق م بإيافة قيمة معياة لى مصف فة أو‬       ‫قيمة معياة من مصف فة أو نص‬   ‫تق م هذه الدالتين باقتصا‬
                                                                                          ‫.‬   ‫نص‬

                                                                             ‫الدالة ‪Implode‬‬
                                                      ‫تق م بإيافة قيمة لى بين ااصم المصف فة .‬

                                                                                           ‫مثاا :‬
‫?<‬
‫;)"‪$stng =array ("ahmed", "salem", "ali", "alfarsi‬‬
‫;)‪$r =implode ("H",$stng‬‬
‫;‪echo $r‬‬
‫>?‬
                                                                               ‫الدالة ‪explode‬‬
                                  ‫تق م بحذف قيمة من مصف فة وذلك اليعاي حذف ااصم من المصف فة .‬

                                                                                                        ‫مثاا :‬
‫?<‬
‫;)"‪$stng =array ("ahmed", "salem", "ali", "alfarsi‬‬
‫;)‪$r =implode ("-",$stng‬‬
‫;‪echo $r‬‬
‫;)‪$r= explode ("-",$stng‬‬
‫;‪echo $r‬‬
‫>?‬

                                                          ‫‪ HTTP_GET_VARS‬و ‪HTTP_POST_VARS‬‬
              ‫هذه ليست متغيما بل مصف فا ، نعم هذه مصف فا ولكن في ماذا نست دمها ولماذا ؟‬
‫في ال اقع تحدثاا في الدرس السابق ن ميقة التعامل مع الاماذم والحص ا لى الريانا من المست دم‬
                                                     ‫وتكلماا ن أسل بين لاقل الريانا وهما ‪ GET‬و ‪POST‬‬
‫ادما تصل الريانا محف ظة في متغيما إلى صيفحة اليي‪ PHP‬فإنيه يقي م بتعميفهيا تلقائييا ويمكايك را ية‬
‫المتغيما وقيمها مراشمة من غيم تعميف .... ولكن هذه الميزة في الي‪ PHP‬يمكن إلغاؤهيا ين مييق المليف‬
                                                           ‫‪ PHP.INI‬وذلك بإغمق ميزة ‪register_globals‬‬
                                                                             ‫وذلك ب يع ‪ off‬بدال من ‪on‬‬

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

‫لافمض أنك اشتمكت اد مزود ويب وكان قد أغلق ميزة (‪ )register_globals‬حساا لافيمض أنيك قيد صياعت‬
‫نم ذجا يست دم ممبع ن ويحفظ قيمته في متغيم اسمه ‪ Dorrah‬ثم بعد ذليك يقي م بإرسياا هيذه القيمية‬
 ‫باست دام األسل ب ‪ GET‬إذا سيك ن جزء من الك د في الصفحة األولى والتي تحت د لى الام ذم كالتالى‬
‫>”‪<form method =get action = “try.php‬‬
‫ماه اسم الطفل الذد استيقظ به العالم االسممي من غفلته قرل ده شه ر !!‬
‫>‪<br‬‬
‫>”‪<input type=text name = “Dorrah‬‬
‫>‪<br‬‬
                     ‫في الملف الثاني(‪ )try.php‬ساق م بكتابة ال زء الذد سيق م بطرا ة القيمة كالتالى‬
‫?<‬
‫;]”‪Echo HTTP_GET_VARS[“Dorrah‬‬
‫>?‬
‫الحظ أناا لم نست دم $ ولكن إذا أردنا اإلحتفاظ بقيمة المتغيم فيي متغييم آخيم فيمكاايا ذليك بطيكل يادد‬
                                                                                          ‫كالتالى :‬
‫?<‬
‫;]”‪$Dorrah= HTTP_GET_VARS[“Dorrah‬‬
‫>?‬

‫ميقه بسيطة .... أليس كذلك ولكن .... لافتمض أن مزود خدمة ال يب لديك حمي جدا ولذلك فقد ألغيي‬
 ‫أيضييا ميييزة اسييتقراا هييذه القيييم فييي المصييف فا .... يمكاييه ذلييك فييي ملييف الييي‪ php.ini‬فييي ا ييدادا‬
‫الي‪ track_vars‬الذد يق م بماع السيمفم من است دام هذه المصف فا (هذه الميزة يمكن إلغاؤها في 4‪php‬‬
‫) .... لى ذلك انصحك بإرساا رساا تذمم وشك د إلى مزود ال دمية ليديك .. تعلين فيهيا أن األميم اصيرح‬
                                                                                                   ‫اليحتمل .‬
                                                                                     ‫مصفوفه متعدده االبعاد‬
       ‫لى حسب ماتحتاجه فيي معل ماتيك المياييية فقيد تحتيام ميثم‬           ‫يمكاك صاا ة مصف فا بداخل مصف فا‬
         ‫إلى إنطاء أشياء معقدة (ومقلقية نفسييا) نمييد أن ن ريمك ليى أيية حياا أنيه يمكايك صياا ة المصيف فا‬
            ‫ي‬     ‫ي‬     ‫ي‬          ‫ي‬     ‫ي‬
       ‫المتع يددة األبع ياد ويمكا يك اس يت دام حت يي مائ ية مص يف فة متداخل ية ولك ين ي يب أن تما يي ح يم ال يذاكمة‬
                                                          ‫ي‬             ‫ي‬        ‫ي‬     ‫ي‬         ‫ي‬          ‫ي‬
         ‫المست دمة في السيمفم لديك (و لى كل حاا إن استطعت أن تق م بالتمكيز في صياا ة طيم مصيف فا‬
                                           ‫متداخلة بدون أد مطاكل أو ممض نفسي أو .... فأنت تستحق جائزة) .‬

                                                                              ‫يمكااا كتابة مصف فة متداخلة كالتالى :‬
       ‫?<‬
       ‫;) )7521,"‪$mon= array (1=>array ("sharkeh al-jafali",154786) ,2 => array ("salem almazen‬‬
       ‫))‪while (list($personnum) =each ($mon‬‬
       ‫{‬
       ‫;)">‪echo ("<br>$personnum<br‬‬

       ‫))]‪while (list(,$phone)=each ($mon[$personnum‬‬
          ‫{‬
           ‫;)"‪echo ("$phone‬‬
           ‫}‬
       ‫}‬
       ‫>?‬

                                                                                                  ‫الشرح‬
       ‫هذا المثاا قد يك ن غامضا جدا لكن فكمته بسيطة أوال افتمض أنك تعلم ين ‪ list..each‬جييدا وتعيمف صييغة‬
                                                                                ‫التكمار الذد يست دمهما .‬
       ‫اآن لدياا مصف فة تتك ن من رقمين للفهمسة هذين المقمين كل واحد ماهميا اصيمه ريارة ين مصيف فة‬
           ‫هذه المصف فة تحت د لى اصمين ( ولاتااسي أنهما يحت يان لى أرقام فهمسة ) وهما اسيم شي‬
                                                                                            ‫ورقم هاتفه .‬
‫‪echo‬‬
                                                                                      ‫في أوا خط ة :‬
       ‫))‪while (list($personnum) =each ($mon‬‬
       ‫{‬
       ‫;)”‪echo (“<br>$personnum‬‬
       ‫قماا بإخمام رقم الفهمسية األساسيي للمصيف فة واليذد يعتريم هي اليمقم التسلسيلي لمشي ا أصيحاب‬
                               ‫اله اتف ومن بعد ذلك يق م بطرا ة هذا المقم التسلسلي ويردأ من سطم جديد .‬

                                                                                                 ‫في ال ط ة الثانية :‬
       ‫))]‪while (list(,$phone)=each ($mon[$personnum‬‬
          ‫{‬
           ‫;)"‪echo ("$phone‬‬
           ‫}‬
        ‫ي‬           ‫ي‬        ‫ي‬          ‫ي‬
       ‫نق ي م بإخر يار ال يي‪ PHP‬بطرا ية العااص يم ال يذد تحت يه يا المص يف فة الت يى ت يم را ية رق يم فهمس يتها ، والح يظ‬
                                             ‫ي‬         ‫ي‬       ‫ي‬          ‫ي ي‬                               ‫ي‬
               ‫)‪ (,$phone‬أنها تطيم إلى ااصم مصف فة وليس فهارسها ألناا ت اهلاا فهارس المصف فة الداخلية .‬
       ‫التقلق األمم سهل ولكاه يحتام الى تدرب فقط ، و ليك أن تتدرب وصيدقاي أنايي حاوليت ان أبسيط المثياا‬
                                                                            ‫من أجلك ... أتماي أن تك ن قد فهمت .‬
                                                                                             ‫تطبيق عملي‬
                                                   ‫لديك واكتب الك د التالي :‬                 ‫افتح محمر الاص‬
‫?<‬
‫; " '‪Echo "<form method =post action = 'exam2.php‬‬
‫;)"حسن","سعد" ,"خالد" , "أحمد"( ‪$boy=array‬‬
‫))‪while (list(,$Name) = each ($boy‬‬
‫{‬
‫;"؟ ‪$Name‬ماهي الساة الدراسية لي " ‪echo‬‬
‫>'][‪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‬‬     ‫افتح محمر الاص‬
‫>"‪<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‬‬

                                                                                       ‫تكرار ‪foreach‬‬
  ‫هذا التكمار ه من األشياء ال ديدة في الي4‪ php‬وه يسا دك لى معمفة ااصم مصف فة معياة أو را ة‬
                                                                               ‫محت ياتها .‬
‫)‪Foreach ($ArrayName As $ArrayItem‬‬
‫{‬
      ‫شفمه ‪code‬‬
‫}‬
                                                                                   : ‫مثاا‬
<?
$T= array (a=>”ahmed “ , b => “basem”, c=>”car”)

Foreach ($T As $A => $r)
{
    echo $A .”-----”. $r;
}
?>

                                                                             count ‫الدالة‬
                                             ‫تق م بحساب دد العااصم الم ج دة في المصف فة‬

                                                                                   : ‫مثاا‬
<?
$c=array("a","b","c");
$v=count($c);
echo $v;
?>

								
To top