PHP தமிழில் பகுதி 12: Arrays

PHP Arrays பல மாறிகளை (variable) ஒன்றாக இணைத்து ஒரு குழுவாக மாற்றி அதை ஒற்றை மாறியின் (variable) மூலமாக அணுகுவதற்கு வழி எற்படுத்தி தருகிறது. Array யானது ஒருமுறை உருவாக்கப்பட்டுவிட்டால் அதன் பிறகு அதில் நம்மால் உருப்படிகளைச் (items) சேர்க்க, நீக்க, மாற்ற, வரிசைப்படுத்த முடியும். ஒரு Array இருக்கும் உருப்படிகள் எந்த மாறி வகையினைச் சேர்ந்ததாக இருக்கலாம். Array யில் உருப்படிகள் அனைத்தும் ஒரே வகையினைச் சேர்ந்ததாகத்தான் இருக்க வேண்டும் என்று எந்த கட்டாயமும் இல்லை.

Array – யினைடைய உறுப்புகளை key யைக் கொண்டு அணுக முடியும். இரண்டு வகையான Array –க்கள் இருக்கின்றன. Array – யினுடைய உறுப்புகளை எந்தவகையான key யைக் கொண்டு அணுகிறோம் என்பதைப் பொறுத்து அவை வகைப்படுத்தப்படுகிறது.

  1. Numerical Array
  2. Associative Array

Numerical Array

Numerical Key Array யில் Array – யின் உறுப்புகள் உருப்படியினுடைய numerical position -க் கொண்டு அணுகப்படுகிறது. Array – யின் முதல் உருப்படி element 0, இரண்டாவது உருப்படி element 1 … and so on.

Associative Array

Associative Array யில் Array – யின் உறுப்புகள் ஒவ்வொரு உருப்படிக்கும் கொடுக்கப்பட்டுள்ள பெயரைக் கொண்டு அணுகப்படும்.

Array உருவாக்குதல் (Creating a Array)

array() function ஐக் கொண்டு Array – க்கள் உருவாக்கப்படுகிறது. Array() function 0 அல்லது அதற்கு அதிகமான argument களை எடுத்துக் கொண்டு ஒரு புதிய array – யை நமக்கு திருப்பி அளிக்கிறது. Assignment Operator (=) ஐக் கொண்டு புதிய array யானது இடதுபுறமாக இருக்கும் மாறிக்கு கொடுக்கப்படுகிறது.

Array – யானது உருப்படிகள் சேர்க்கப்பட்டால் வளரும் (grow), உருப்படிகள் நீக்கப்பட்டால் சுருங்கும் (shrink). இவை dynamic ஆக நடைபெறும். ஆகையால் மற்ற நிரல் மொழிகளில் உள்ளதைப் போன்று array – யை உருவாக்கும் போதே அதனுடைய அளவையும் கொடுக்க வேண்டும் என்ற கட்டாயமில்லை.

Empty Array உருவாக்கம் (empty array creation)

<?php

$emptyArray = array();

?>

இதற்கு மாற்றாக, array க்கு மதிப்புகளை arguments களாக கொடுப்பதன் மூலமாக முன்-தொடக்கம் செய்யப்பட்ட array யையும் உருவாக்க முடியும்.

<?php

$linuxDistros = array(“Redhat” , “Debian” , “Slackware” , “Ubuntu” , “Fedora”);

?>

Array – யின் உறுப்புகளை அணுகுதல்

numerical key array வகையில் உள்ள உறுப்புகள் மாறியின் பெயரைத் தொடர்ந்து வரக்கூடிய square brackets ( [] ) -க்குள் கொடுக்கப்படும் சுட்டைக் (index) கொண்டு அணுகப்படுகிறது. முதல் உறுப்பு 0 விலிருந்து தொடங்கும் என்பதை ஞாபகத்தில் வைத்துக் கொள்ளுங்கள். நான் மேலே பார்த்த நிரலில் உள்ள உறுப்புகளை அணுகுவது எப்படி என்று பார்ப்போமா?

<?php

$linuxDistros = array(“Redhat” , “Debian” , “Slackware” , “Ubuntu” , “Fedora”);

echo “elements 0 = “.$linuxDistros[0];

echo “<br>”;

echo “elements 1 = “.$linuxDistros[1];

echo “<br>”;

echo “elements 2 = “.$linuxDistros[2];

echo “<br>”;

echo “elements 3 = “.$linuxDistros[3];

echo “<br>”;

echo “elements 4 = “.$linuxDistros[4];

?>

வெளியீடு

bitmap

Associative Array யை உருவாக்குதல் (Creating an Associative Array)

Associative Array – யில் numerical position – க்கு பதிலாக பெயர்கள் கொடுக்கப்படுகிறது. இந்த முறையானது associative array – யின் உறுப்புகளை அணுகும் முறையை எளிமையாக்குகிறது. Associative Array – ஐ உருவாக்க array() function பயன்படுகிறது. Key => value எனும் முறைப்படி associative array – க்கு arguments களை கொடுக்க வேண்டும். இங்கு key என்பது value – ஐ அணுகுவதற்காக கொடுக்கப்படும் பெயர், value என்பது value -ஐ சேமித்து வைப்பதற்காக கொடுக்கப்படுவது.

உங்களுடைய விபரங்களை சேமிப்பதற்கு ஒரு associative array – ஐ உருவாக்கினால் எப்படி இருக்கும் என்பதை கீழே உள்ள நிரலின் மூலம் காணலாம்.

<?php

$myDetails = array(‘name’=>’KATHIRVEL R’ , ‘age’=>25 , ‘mobile’=>’9999999999′ ,’qualification’=>’Engineering’);

?>

Associative Array – யின் உறுப்புகளை அணுகுதல் (Accessing Elements of an Associative Array)

Associative Array – ஐ உருவாக்குவது எப்படி என்று முந்தைய பகுதியில் நாம் பார்த்தோம். இப்பொழுது அதிலுள்ள உறுப்புகளை அணுகுவது எப்படி? என்று பார்ப்போம். மேலே உள்ள $myDetails என்பதையே உதாரணத்திற்கு எடுத்துக் கொள்வோம்.

<?php

$myDetails = array(‘name’=>’KATHIRVEL R’ , ‘age’=>25 , ‘mobile’=>’9999999999′ ,’qualification’=>’Engineering’);

echo $myDetails[‘name’];

echo “<br>”;

echo $myDetails[‘age’];

echo “<br>”;

echo $myDetails[‘mobile’];

echo “<br>”;

echo $myDetails[‘qualification’];

echo “<br>”;

?>

வெளியீடு

image3004

Array சுட்டியைப் பயன்படுத்துதல்(Using Array Pointers)

Array யானது உறுப்புகளை அணுகுவதற்காக உள்ளுக்குள்ளேயே ஒரு சுட்டியை(pointer) பராமரித்து வருகிறது. Next, previous, reset மற்றும் end ஆகிய function களைக் கொண்டு அந்த சுட்டியை நம்மால் மாற்ற முடியும். இந்த reset மற்றும் end செயல்கூறுகள்(functions) array -யினுடைய முதல் மற்றும் கடைசி உறுப்புகளுக்கு சுட்டியை நகர்த்துகிறது. Prev function தற்போதைய உறுப்புக்கு முன்னதாக உள்ள உறுப்புக்கு சுட்டியை நகர்த்துகிறது. Pre மற்றும் next functions சுட்டியை முன்பு அல்லது பின்பு சுட்டியை நகர்த்த முடியாத பட்சத்தில் false எனும் மதிப்பை நமக்கு திரும்ப அளிக்கிறது. நாம் மேலே பார்த்த நான்கு செயல்கூறுகளும் எந்த array – யினுடைய சுட்டியை நகர்த்த வேண்டுமோ அந்த array – ஐ உள்ளீடாக எடுத்துக் கொள்கிறது.

கீழ்காணும் நிரலைப் பாருங்கள்

<?php

$linuxDistros = array(“Redhat” , “Debian” , “Slackware” , “Ubuntu” , “Fedora”);

echo “elements 0 = “.$linuxDistros[0];

echo “<br>”;

echo “elements 1 = “.$linuxDistros[1];

echo “<br>”;

echo “elements 2 = “.$linuxDistros[2];

echo “<br>”;

echo “elements 3 = “.$linuxDistros[3];

echo “<br>”;

echo “elements 4 = “.$linuxDistros[4];

echo “<br>”;

echo “<b>Using Array Pointers</b>”;

echo “<br>”;

echo “The Last element of array is ” . end($linuxDistros);

echo “<br>”;

echo “The Previous element is ” . prev($linuxDistros);

echo “<br>”;

echo “The Previous element is ” . prev($linuxDistros);

echo “<br>”;

echo “The First element of array is ” . reset($linuxDistros);

echo “<br>”;

echo “The Next element is ” . next($linuxDistros);

?>

வெளியீடு

image3015

Array யின் உறுப்புகளை மாற்றுதல், சேர்த்தல் மற்றும் நீக்குதல்(Changing, Adding and Removing Array Elements)

Array – யின் உறுப்பை மாற்றுதல் (change the element)

எந்த உறுப்பின் மதிப்பை நாம் மாற்றம் செய்ய வேண்டுமோ அந்த உறுப்பினுடைய சரியாக சுட்டியைக் கொண்டு அதற்கு புதிய மதிப்பை கொடுப்பதன் மூலம் அந்த உறுப்பின் மதிப்பை மாற்றலாம். இதற்கென தனியாக எந்த function கிடையாது.

கீழே உள்ள நிரலைப் பாருங்கள்

<?php

$mobileBrands = array(‘Samsung’ , ‘Sony’ , ‘MicroMax’);

echo “Before, Second Element of array : “.$mobileBrands[1];

echo “<br>”;

$mobileBrands[1] = ‘HTC’;

echo “After, Second Element of array : “.$mobileBrands[1];

?>

வெளியீடு

image3026

புதிய உறுப்பைச் சேர்த்தல் (Add a new element)

array_push() எனும் function ஐக் கொண்டு நாம் ஏற்கனவே இருக்கும் array யில் ஒரு புதிய உறுப்பைச் சேர்க்கலாம். array_push() function இரண்டு உள்ளீடுகளைப் பெற்றுக் கொள்கிறது. ஒன்று array யின் பெயர், மற்றொன்று புதிதாக இணைக்க வேண்டிய உறுப்பின் மதிப்பு.

கீழே உள்ள நிரலைப் பாருங்கள்

<?php

$mobileBrands = array(‘Samsung’ , ‘Sony’ , ‘MicroMax’);

echo “<b>Before</b>”;

echo “<br>”;

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

echo “<br>”;

echo “<b>After</b>”;

echo “<br>”;

array_push($mobileBrands, ‘Panasonic’);

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

echo “<br>”;

echo $mobileBrands[3];

echo “<br>”;

?>

வெளியீடு

image3037

array_push() function புதிய உறுப்பை array யில் கடைசியாக சேர்க்கும். முதலில் சேர்க்க வேண்டுமென்றால் array_unshift() எனும் function ஐப் பயன்படுத்த வேண்டும்.

கீழே உள்ள நிரலைப் பாருங்கள்

<?php

$mobileBrands = array(‘Samsung’ , ‘Sony’ , ‘MicroMax’);

echo “<b>Before</b>”;

echo “<br>”;

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

echo “<br>”;

echo “<b>After</b>”;

echo “<br>”;

array_unshift($mobileBrands, “Panasonic”);

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

echo “<br>”;

echo $mobileBrands[3];

echo “<br>”;

?>

வெளியீடு

image3048

Array – யின் உறுப்பை நீக்குதல் (remove the array element)

array_pop() function – ஐப் பயன்படுத்தி array – யில் கடைசியாக இருக்கும் உருப்படியை நீக்கிவிடலாம்.

கீழே உள்ள நிரலைப் பாருங்கள்

<?php

$mobileBrands = array(‘Samsung’ , ‘Sony’ , ‘MicroMax’);

echo “<b>Before</b>”;

echo “<br>”;

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

echo “<br>”;

echo “<b>After</b>”;

echo “<br>”;

array_pop($mobileBrands);

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

?>

வெளியீடு

image3059

array_shift() function -ஐக் கொண்டு array – யில் முதலாவதாக இருக்கும் உறுப்பை நீக்கிவிடலாம்.

<?php

$mobileBrands = array(‘Samsung’ , ‘Sony’ , ‘MicroMax’);

echo “<b>Before</b>”;

echo “<br>”;

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

echo “<br>”;

echo “<b>After</b>”;

echo “<br>”;

array_shift($mobileBrands);

echo $mobileBrands[0];

echo “<br>”;

echo $mobileBrands[1];

echo “<br>”;

echo $mobileBrands[2];

?>

Looping மூலமகா array – யின் உறுப்புகளை அணுகுதல்(Looping through array Elements)

array – யின் உறுப்புகளை அணுகி படிப்பதற்கும், அதன் மதிப்புகளில் மாற்றங்கள் செய்வதற்கும் loop மூலமாக அணுகுவது அடிக்கடி அவசியமாகிறது. இதற்காக பயன்படுத்தப்படும் ஒன்றுதான் foreach loop. Foreach loop -ம் array – யின் உறுப்புகளை திரும்பத் திரும்ப அணுகுவதற்கு for அல்லது while loop ஐப் போன்றுதான் செயல்படுகிறது.

Foreach loop – ஐப் பயன்படுத்துவதற்கு இரண்டு வழிகள் இருக்கின்றது. முதலில் array – யின் தற்போதைய உறுப்பை ஒரு குறிப்பிட்ட variable (மாறி) -க்கு நிர்ணயித்து விட்டு அதன்பிறகு அதை loop – இன் body க்குள் பயன்படுத்திக் கொள்வது.

கீழே உள்ள நிரலைப் பாருங்கள்

<?php

$mobileBrands = array(‘Samsung’ , ‘Sony’ , ‘MicroMax’);

foreach( $mobileBrands as $mobileBrandArrayValues ) {

echo “$mobileBrandArrayValues <br>”;

}

?>

இதன் வெளியீடு கீழ்காண்பதைப் போன்று இருக்கும்

image3070

associative array – யின் உறுப்புகளை அணுகுவதற்கும் நாம் மேலே பார்த்த அதே முறைதான். சிறிய வித்தியாசம் என்னவென்றால். associative array – யில் key, value என்ற இரண்டு இருக்கும் ஆகையல் இங்கு key, value இரண்டிற்கும் variable – களை foreach loop – இல் அமைக்க வேண்டும்.

<?php

$myDetails = array(‘name’=>’KATHIRVEL R’ , ‘age’=>25 , ‘mobile’=>’9999999999′ ,’qualification’=>’Engineering’);

foreach ( $myDetails as $myDetailsKey => $myDetailsValue) {

echo “Key = $myDetailsKey <br>”;

echo “Value = $myDetailsValue <br>”;

}

?>

வெளியீடு

image3081

Replacing Sections of an Array

array_splice() function ஐப் பயன்படுத்தி array – யினுடைய மொத்த தொகுதியையும் மாற்ற முடியும். array_splice() function இரண்டு அத்தியாவசியமான உள்ளீடுகளையும், விரும்பினால் கொடுக்கக்கூடிய இரண்டு உள்ளீடுகளையும் பெற்றுக் கொள்கிறது. Array – யினுடைய பெயரை முதல் உள்ளீடாகவும், எந்த சுட்டியிலிருந்து தொடங்கி எந்த சுட்டி வரை முடிக்க வேண்டும் என்பதை இரண்டாவது மற்றும் மூன்றாவது உள்ளீடாக பெற்றுக் கொள்கிறது.

Array – யை வரிசைப்படுத்துதல்.

இரண்டு வரிசையில் வரிசைப்படுத்தலாம். ஒன்று ஏறுவரிசை மற்றொன்று இறங்கு வரிசை

எறுவரிசைக்கு sort() function – னும், இறங்கு வரிசைக்கு rsort() function -னும் பயன்படுத்தப்படுகிறது.

இரண்டு function -களுமே இரண்டு உள்ளீடுகளைப் பெற்றுக் கொள்கின்றன. ஒன்று array யின் பெயர், மற்றொன்று எந்த நெறிமுறையில் (algorithm) வரிசைப்படுத்த வேண்டும் என்பது. மூன்று வகையான நெறிமுறைகள் உள்ளன. அவை

SORT_NUMERIC

SORT_STRING

SORT_REGULAR

எந்த நெறிமுறை என்று குறிப்பிடாதப் பட்சத்தில் SORT_REGULAR முறை பயன்படுத்தப்படும்.

கீழே உள்ள நிரலைப் பாருங்கள்

<?php

$myArray = array(‘KATHIRVEL’, 9500, ‘KARTHIK’, ‘ARIVAZHAGAN’, 4598);

echo “<h2>Ascending Order</h2>”;

echo “<b>SORT_NUMERIC</b><br>”;

sort($myArray, SORT_NUMERIC);

foreach ( $myArray as $mySortArray) {

echo “$mySortArray<br>”;

}

echo “<br>”;

echo “<b>SORT_STRING</b><br>”;

sort($myArray, SORT_STRING);

foreach ( $myArray as $mySortArray) {

echo “$mySortArray<br>”;

}

echo “<br>”;

echo “<b>SORT_REGULAR</b><br>”;

sort($myArray, SORT_REGULAR);

foreach ( $myArray as $mySortArray) {

echo “$mySortArray<br>”;

}

echo “<h2>Descending Order</h2>”;

echo “<b>SORT_NUMERIC</b><br>”;

rsort($myArray, SORT_NUMERIC);

foreach ( $myArray as $mySortArray) {

echo “$mySortArray<br>”;

}

echo “<br>”;

echo “<b>SORT_STRING</b><br>”;

rsort($myArray, SORT_STRING);

foreach ( $myArray as $mySortArray) {

echo “$mySortArray<br>”;

}

echo “<br>”;

echo “<b>SORT_REGULAR</b><br>”;

rsort($myArray, SORT_REGULAR);

foreach ( $myArray as $mySortArray) {

echo “$mySortArray<br>”;

}

?>

வெளியீடு

image3092

image3103

Associative Array – யை வரிசைப்படுத்துதல்

இரண்டு வழிகளில் Associative Array – யை வரிசைப்படுத்தலாம்

1.key -ஐக் கொண்டு வரிசைப்படுத்துதல்

2.value -ஐக் கொண்டு வரிசைப்படுத்துதல்

Key – ஐக் கொண்டு வரிசைப்படுத்துதல்

ஏறுவரிசைக்கு ksort() function – னும், இறங்கு வரிசைக்கு krsort() function – னும் பயன்படுத்தப்படுகிறது.

Value – ஐக் கொண்டு வரிசைப்படுத்துதல்

ஏறுவரிசைக்கு asort() function – னும் , இறங்கு வரிசைக்கு arsort() function – னும் பயனபடுத்தப்படுகிறது. Sort மற்றும் rsort – இல் உள்ள syntax and options தான் இதற்கும், இதற்கென்று தனியாக எதுவுமில்லை.

Array – யைப் பற்றிய தகவல்களைப் பெறுதல் மற்றும் இதர array செயல்கூறுகள்(functions)

array – யைப் பற்றிய தகவல்களைப் பெறுவதற்கு பயனுள்ள பல function -கள் PHP யில் இருக்கின்றது. கீழே உள்ள அட்டவணையில் அவைகள் விளக்கங்களுடன் பட்டியலிடப்பட்டுள்ளது.

Function(செயல்கூறு) Description(விளக்கம்)
Print_r Array – யின் உறுப்புகளை வெளியிடுகிறது
array_keys Associative array – யில் இருக்கும் key கள் அனைத்தையும் தருகிறது
array_search நாம் தேடுவதற்காக கொடுக்கக்கூடிய மதிப்பு இருக்கும்பட்சத்தில், அந்த மதிப்புக்குரிய key – யை திருப்பித் தருகிறது.
array_values Array – யில் இருக்கும் மதிப்புகள் அனைத்தையும் திருப்பித் தருகிறது.
in_array குறிப்பிட்ட மதிப்பு array – யில் இருந்தால் true என்றும் இல்லையென்றால் false எனவும் திருப்பித் தருகிறது.
array_merge இரண்டு அல்லது அதற்கும் மேற்பட்ட array – களை ஒரே array மாற்றுகிறது.
array_reverse Array – யின் உறுப்புகளை தலைகீழாக மாற்றுகிறது.
Shuffle Random வரிசையில் array உறுப்புகளை வரிசைப்படுத்துகிறது.

 

About Author

ஓஜஸ்
உங்களுள் ஒருவன். உங்களைப் போல் ஒருவன்!!! http://bit.ly/ojas9 | http://bit.ly/isaai

Leave a Reply

%d bloggers like this: