Control structures and arrays: if/else/elseif/switch; for, while, do-while, foreach; arrays (indexed, associative, multidimensional); array operations (sort(), asort(), ksort(), array_merge())

PHP का control flow familiar है, पर इसके arrays star हैं: indexed, associative (key से value), और multidimensional, foreach से walked, और array functions की एक rich family से reshaped।

12 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Registration List एक Array है

Event portal का core data एक LIST है: Garba Night के लिए registered हर कोई। PHP में वह list एक array है, और PHP के arrays unusually powerful हैं: ये simple numbered lists हो सकते हैं, या keys से values के maps, या records की nested tables।

Control flow (if, switch, loops) आप 5 languages से पहले ही जानते हैं; PHP के versions में कम surprises हैं। तो यह lesson अपनी energy वहाँ खर्च करता है जहाँ PHP genuinely distinctive और exam-heavy है: arrays, वह loop जो इन्हें walk करता है (foreach), और वह family of functions जो इन्हें sort और reshape करते हैं।

Theory

Control Flow, Briefly

PHP के control structures familiar set हैं:

  • decisions के लिए if / elseif / else और switch (हर case पर break के साथ)
  • counted और conditional loops के लिए for, while, do-while
  • arrays walk करने के लिए foreach: वह जो real attention लायक है

foreach 2 forms में आता है: हर value visit करने के लिए foreach ($arr as $value), और हर key AND इसकी value visit करने के लिए foreach ($arr as $key => $value)। Associative arrays के लिए (नीचे), दूसरी form essential है।

Theory

तीन Kinds का Array

PHP arrays 3 shapes में आते हैं:

  • Indexed: 0 से numeric keys। $names = ["Riya", "Aman"]; तो $names[0] "Riya" है
  • Associative: STRING keys values से mapping करते हैं। $event = ["seats" => 350, "venue" => "Ground"]; तो $event["seats"] 350 है
  • Multidimensional: arrays के arrays, records की एक table के लिए perfect: एक registration list जहाँ हर entry खुद एक व्यक्ति की details का associative array है

Associative array PHP की signature strength है: clean key => value syntax के साथ एक built-in map (एक dictionary की तरह)।

Practical

Arrays and foreach (predict the output)

<?php
  // Associative array: keys map to values
  $event = ["venue" => "Ground", "seats" => 350, "fee" => 50];

  foreach ($event as $key => $value) {
    echo "$key = $value <br>";
  }
  // venue = Ground
  // seats = 350
  // fee = 50

  // Multidimensional: a registration list
  $regs = [
    ["name" => "Riya", "paid" => true],
    ["name" => "Aman", "paid" => false],
  ];
  echo $regs[0]["name"];   // Riya
  echo count($regs);        // 2
?>

At a glance

Sorting Family (Exam Favourite)

FunctionSort करता है ByKey Association रखता है?
sort()Values, ascendingनहीं: 0,1,2 re-indexes करता है (keys खो जाती हैं)
asort()Values, ascendingहाँ: key => value pairs रखता है
ksort()Keys, ascendingहाँ: key से reorder करता है
rsort() / arsort() / krsort()Above जैसा, descendingइनके ascending twins जैसा ही

Quiz

आपके पास एक associative array $scores = ["Riya"=>80, "Aman"=>95] है। आप score से sort करना चाहते हैं पर हर name को इसके score से attached रखना चाहते हैं। कौन सा function?

  1. sort(): यह values sort करता है
  2. asort(): यह key => value association रखते हुए value से sort करता है
  3. ksort(): यह key से sort करता है
  4. array_merge(): यह arrays combine करता है
Show the answer

asort(): यह key => value association रखते हुए value से sort करता है

asort() VALUE (scores) से sort करता है पर key-value pairs PRESERVE करता है, तो Riya 80 से और Aman 95 से attached रहते हैं: exactly वह जो आपको चाहिए। sort() भी values order करता, पर array को 0,1,2 में RE-INDEX करता, name keys DESTROY करते हुए: आप खो देते who scored what। ksort() KEYS (names alphabetically) से sort करता है, scores से नहीं। array_merge() बिल्कुल sort नहीं करता। यह sort-बनाम-asort distinction (क्या यह keys रखता है?) सबसे-ज़्यादा-पूछा गया PHP array question है: sort keys खोता है, asort इन्हें रखता है।

Think first

sort() ने Map तोड़ दिया

एक student score से order करने के लिए $scores associative array पर sort() चलाता है, फिर foreach($scores as $name => $score) से loop करता है। Names 0 और 1 की तरह आते हैं, Riya और Aman नहीं। Explain कीजिए क्या हुआ, फिर tap कीजिए।

Show the answer

sort() VALUES को ascending sort करता है पर array को fresh numeric keys 0, 1, 2... से भी RE-INDEX करता है, original string keys को THROWING AWAY करते हुए। तो sort() के बाद, array [0=>80, 1=>95] है: names गए, numbers से replaced, और foreach अब keys 0 और 1 देखता है। Fix asort() है, जो name keys attached RAKHTE हुए value से sort करता है। Lesson: associative arrays पर, sort function चुनिए इस पर कि क्या आपको keys preserve करनी हैं: sort/rsort इन्हें discard करते हैं, asort/arsort/ksort/krsort इन्हें रखते हैं। sort() सिर्फ़ plain indexed lists पर reach कीजिए जहाँ keys matter नहीं करतीं।

Watch out

Array Traps

Associative Arrays पर sort(): यह keys destroy करता है; इन्हें रखने के लिए asort() इस्तेमाल कीजिए।

Key => Value के बिना foreach: एक associative array पर keys देखने के लिए आपको as $key => $value चाहिए।

count() पर Off-by-One: count() elements की number देता है; indexed arrays के लिए last index count() - 1 है।

Undefined Keys: $arr["missing"] access करना warn करता है और null देता है; पहले isset() से check कीजिए।

Foreach करते हुए एक Array Modify करना: subtle bugs cause कर सकता है; इसकी बजाय एक नया array build कीजिए।

Theory

Data और Logic हो गए, अब Real Input

अब portal अपनी registration list को एक multidimensional array की तरह store कर सकता है, इसे foreach से walk कर सकता है, और इसे किसी भी ज़रूरी तरीके से sort कर सकता है। पर data को कहीं से आना पड़ता है: एक user एक FORM भरते हुए। अगला lesson HTML forms को $_GET और $_POST से PHP के साथ जोड़ता है, repeated logic को FUNCTIONS में wrap करता है, और वह input validation और sanitization add करता है जो हर real login form को चाहिए। यहीं Unit 1 ख़त्म होता है जहाँ portal जीवंत होता है: एक real registration handle करते हुए।

Summary

Key takeaways

  • Control flow familiar है: if/elseif/else, switch (break के साथ), for, while, do-while, और arrays के लिए foreach।
  • foreach arrays को walk करता है: values के लिए as $value, key-value pairs के लिए as $key => $value।
  • तीन array kinds: indexed (0 से numeric keys), associative (string key => value), multidimensional (arrays के arrays)।
  • Associative arrays PHP के built-in maps हैं; multidimensional arrays records की tables model करते हैं (registration list)।
  • Sorting: sort() values order करता है पर RE-INDEXES करता है (keys खोता है); asort() key-value pairs रखता है; ksort() key से sort करता है।
  • Sort function चुनिए इस पर कि क्या आपको keys preserve करनी हैं।
  • Memory hook: sort keys खोता है, asort इन्हें रखता है।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Core PHP Programming

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Control structures and arrays: if/else/elseif/switch; for, while, do-while, foreach; arrays (indexed, associative, multidimensional); array operations (sort(), asort(), ksort(), array_merge()) · Web Framework and Services (Major-12) · Gri-Learn