Wednesday, February 22, 2012

PHP 07 - Arrays කියන්නේ මොනවද?

තුන්වැනි පාඩමේදි අපි විචල්‍යන් ගැන ඉගෙනගත්තා ඔබට මතක ඇති. මෙවැනි Variable එකක අපිට එකවතාවකදී Store කරලා තියන්න පුලුවන් එක් අගයක් පමණයි. ඒ විචල්‍යය සඳහා වෙනත් අගයක් Assign කළ විට සිදුවන්නේ කලින් තිබූ value එක ඉවත් වී නව value එක එහි ගබඩා වීමයි.


මෙම කේත සටහනේ පළමුව $friend නැමැති variable එකට ලබාදී ඇත්තේ Amal යන value එකයි. ඉන්පසු එය බ්‍රව්සරය වෙත print කර තිබේ. ඉන්පසු නැවතත් එම $friend නැමැති variable එකටම Nimal යන value එක  assign කර තිබෙනවා. නැවතත් බ්‍රව්සරයට print කර තිබෙනවා.

මෙහි ප්‍රතිඵලය පහත පරිදි වේ.

 මම කලින් කියූ ආකාරයෙන්ම පළමුවෙන් Amal නැමැති value එකත්, දෙවනුව එම value එක ඉවත් වී පසුව ලබාදුන් Nimal යන value එකත් print වී තිබෙනවා ඔබට පෙනෙනවා ඇති. හොඳයි, දැන් මෙහෙම හිතන්න.

ඔබට ඔබේ මිතුරන් තුන්දෙනෙකුගේ නම් තාවකාලිකව පරිගණකයේ memory එක තුළ ගබඩා කර තැබිය යුතුනම්, එක් variable එකක අපිට ගබඩා කර තැබිය හැක්කේ එක් value එකක් පමණක් නිසා, අපිට එය පහසුවෙන්ම වෙන වෙනම varibales තුනක් හරහා සිදුකරගත හැකියි නේද!


නමුත් ඔබට මිතුරන් 250ක් සිටිනවානම්, ඔවුන්ගේ නම් ගබඩාකර තැබීම සඳහා වෙන වෙනම variables 250ක් හඳුන්වාදීමට වඩා පහසුවෙන් එය සිදුකළ හැකි ක්‍රමයක් අපිට අවශ්‍ය වෙනවා. මේ සඳහා හොඳම විසඳුමක් විදියට මේ පාඩමෙන් අපි ඉගෙනගන්න Arrays හඳුන්වාදෙන්න පුලුවන්.

Array එකක් කියන්නෙත් variable එකක්මයි. නමුත් විශේෂ හැකියාවක් තියෙන variable එකක්. ඒ විශේෂ හැකියාව තමයි Values කීපයක් එකවර ගබඩා කර තබාගන්න තනි Array Variable එකකට හැකිවීම.

මේවිදියට එක Array Variable එකක ගබඩාකර තබාගන්න හැම Value එකකටම බිංදුවෙන් ඇරඹෙන Index Number එකක් තිබෙනවා. අපි ගබඩා කරන values වලට නැවත access කරද්දී අපිට මේ index එක භාවිතා කරන්නත් පුලුවනි.

PHP වල Arrays වර්ග 3ක් තිබෙනවා. මේ වර්ග තුන වෙනස් වෙන්නේ එහි values ගබඩා කරගන්න ආකාරය අනුවයි. දැන් අපි ඒ පිළිබඳව ඉගෙනගමු. ලේසියි.

Numeric Arrays


Numeric Array එකකදි Values ගබඩා කරගන්නේ numeric index එකක් සහිතවයි. ඒ කියන්නෙ හැම array element එකකටම ආවේණික අංකයක් තිබෙනවා. Numeric array එකක් සාදාගන්නා ආකාර දෙකක් තිබෙනවා. එකක් තමයි, කෙළින්ම values ලබාදීම. එවැනි කේතයකට උදාහරණයක් මේ පහළින් තිබෙන්නේ. එහිදී අපි variable එකට කෙළින්ම values ලබාදෙනවා, index එක ඉබේම හැදෙනවා 0,1,2 විදියට පිලිවෙලට. මෙතැනදි අනිවාර්යයෙන්ම array කියන keyword එක භාවිතා කරන්නත් අමතක කරන්න එපා.


දෙවැනි ක්‍රමය තමයි අපි manually index එක සහිතව array එකක් සෑදීම.


ක්‍රම දෙකෙන්ම අවසානයේදී හැදෙන්නේ එකම array එක. මේක තේරුම්ගන්න අමාරුනම් හිතන්න මේ හැදෙන්නෙ මේ විදියේ table එකක් කියලා.


මේ කිව්වේ numeric array එකක් හදාගන්න හැටිනේ. දැන් අපි උදාහරණයකින් බලමු මේ විදියෙ array එකක තියෙන දත්ත අපි කොහොමද නැවත ලබාගන්නේ කියලා.


මෙහි 9 වැනි පේළියෙන් ඉහත මම කීව පළමු ක්‍රමයට array එකක් සාදා තිබෙනවා. ඉන්පසු 11 වැනි පේළියේදී එම array එකේ 2 නැමැති index එක සහිත අගය බ්‍රව්සරයට print කරන ලෙස කියා තිබෙනවා. (index එක ආරම්භ වන්නේ 0න් බව මතක තියාගන්න).

අපි මේ ඉගෙනගත් numeric array එකකදි index එක හැමවිටම 0න් පටන්ගන්නා ඉලක්කමක්. ඒ විදියට නැතිව, වෙනත් වචනයක් index එක විදියට භාවිතා කළයුතුනම්! ඒ ගැන මීළඟ කොටසෙන් හොයලා බලමු.

Associative Arrays


කලින් කීවා වගේම, numeric array එකකදි ලැබෙන අංකමය index එක වෙනුවට, valuesම index එක විදියට භාවිතා කළ හැකි ක්‍රමයක් තමයි Associative Array එකක් කියන්නෙ. අපිට මේ values වලට නැවත values assign කරන්න පුලුවන්. මෙහෙම කිව්වට තේරුම්යන්නෙ නැතිව ඇති.

මේ පහළ තියෙන උදාහරණය බලන්න.


මේ array එකේදී index එක විදියට භාවිතා වෙන්නේ ඉලක්කම් නොවේ, වචනයක්. නැවතත් ඒ එක් එක් නම් යටතේ ඔවුන්ගේ වයස ගබඩා කර තිබෙනවා. එහි භාවිතා කර ඇති සලකුණු පිළිබඳවත් අවධානය යොමුකරමින් තේරුම්ගන්න.

මේ ඉහළින් තිබෙන array එකම සාදාගත හැකි දෙවැනි ක්‍රමය තමයි මේ. මේ ක්‍රමයේදි array කියන වචනය අවශ්‍ය නැහැ.


තේරුම් ගන්න අපහසුනම් මේ array එකෙන් හැදෙන්නේ මේ විදියේ table එකක් කියලා හිතන්න.


පැහැදිලියි නේද? Numeric array එකේ තිබුණ ඉලක්කම් වලින් හැදුණු index එක වෙනුවට මෙතැනදී index එක විදියට තියෙන්නේ අපි විසින්ම ලබාදෙන values කීපයක්.

මේ විදියේ array එකකට access කරලා එහි ඇති දත්තයක් බ්‍රව්සර් එකට print කරගන්න හැටිත් අපි උදාහරණයකින්ම බලමු.


9 වැනි පේළියෙන් පළමු ක්‍රමයට array එක සෑදීමත්, 11 වැනි පේළියෙන් එහි Vimal නැමැති index එක යටතේ ඇති වයස පෙන්වීමත් සිදුවනවා.

දැන් අපි මේ පාඩමේ අවසාන කොටසට යමු.

Multidimensional Arrays


ඉහතින් කතා කළ arrays වර්ග දෙකේදීම index එකක් සහ එම index එක යටතේ ගබඩා කරන ලද values තිබුණා. මේවායින් දැන් අපි කතාකරන Multidimensional Arrays වෙනස් වෙන්නේ, මේවායේ values වෙනුවට තවත් array එකක් ගබඩා කර තැබිය හැකි වීමෙන්. ඒකියන්නේ arrays ගබඩා කළ array එකක්!

තවත් පැහැදිලි කළොත් මෙහෙමයි.

අපි කලින් කතා කළ numeric array එකෙහි ඇති 0,1,2 Indexes යටතේ Nimal, Bimal, Kamal යන values ගබඩා කොට තිබුණා ඔබට මතකයි. හිතන්න මේ values වලත් තවත් values කීපයක් ගබඩා කර තිබෙනවා කියා! උදාහරණයක් හැටියට 1 index එක යටතේ ඇති Bimal යන්නේ ඔහුගේ සොයුරු සොයුරියන්ගේ නම් කීපයක් ගබඩා කර තිබෙන්නට පුලුවන්.

මේවිදියට array එකක elements වල තවත් array එකක් (හෝ එම values වලත් array එකක් ආදී වශයෙන් කීපයක්) ගබඩා කළ හැකි arrays තමයි මේ යටතට ගැනෙන්නේ.

අපි වෙනස් උදාහරණයකින් මේක තේරුම්ගනිමු.

  • Western
    • Colombo
    • Gampaha
    • Kaluthara
  • Southern
    • Galle
    • Matara
    • Hambantota
මේ තොරතුරු මට array එකකට ගන්න අවශ්‍යනම් මට Multidimensional Array එකක් භාවිතා කළ හැකියි.


පහත array එකෙහි පළමුව පළාතත් ඉන්පසුව තවත් array එකකින් දිස්ත්‍රික්ක තුන බැගිනුත් ගබඩා කොට array එකක් සාදා තිබෙනවා.


මෙහි 16 වැනි පේළියෙන් $Provinces නැමැති multidimensional array එකෙහි ඇති "Southern" නැමැති sub array එකෙහි 1 නැමැති index එකෙහි ඇති value එක print කරන ලෙස විධානයක් ලබාදී තිබෙනවා.

මීට අමතරව Arrays සඳහා භාවිතා කළ හැකි විවිධ Functionsද තිබෙනවා. සම්පූර්ණ Array Reference එකක් මෙතැනින් බලාගන්න පුලුවන්.

වෙනස් විදියේ උදාහරණ අරගෙන තව practice කරලා බලන්න.

මීළඟ පාඩමෙන් අපි Loops ගැන ඉගෙනගනිමු.

ඔබ මේ ලිපියෙන් යමක් ඉගෙනගත්තානම් Comment එකකින් මා දිරිමත් කරන්නත් අමතක කරන්න එපා.ස්තුතියි!