How to create Indexed Based Associative Array in PHP?

जब हम Index Based तरीके का प्रयोग करके Associative Array Create करना चाहते हैं, तब हमें निम्न तरीके को Follow करना होता हैः

<?php
$temperature ['delhi'] = 33;
$temperature ['mumbai'] = 30;
$temperature ['rajasthan'] = 40;
$temperature ['gujrat'] = 38;
print_r ($temperature);
?>

//Output
Array
(
[delhi] => 33
[mumbai] => 30
[rajasthan] => 40
[gujrat] => 38
)

हमने हमारे PHP Program में Index Based तरीके से विभिन्न Cities को Key की तरह Use किया है और उनमें Temperature को Values की तरह Store किया है, लेकिन Output में हम देख सकते हैं कि सभी Temperatures उनकी City के साथ Associated Form में Store हो रहे हैं।

PHP में सभी Associative Values Arrow (=>) Operator द्वारा Represent होती हैं। इसीलिये उपरोक्त Output में हमें Array की Keys व Values के बीच => Arrow दिखाई दे रहा है जो इस बात को Indicate करता है कि किस City के साथ कौनसा Temperature Value Associated है।

यदि हम उपरोक्त Program के Associative Array के हर Element का मान अलग-अलग Access करना चाहें, तो हम ये काम निम्नानुसार कर सकते हैं:

echo $temperature['delhi'] ;
echo $temperature[mumbai'] ;
echo $temperature['rajasthan'] ;
echo $temperature['gujrat'] ;

चूंकि Associative Array के सभी Elements को Access करने के लिये सामान्यतः foreach Looping Statement का प्रयोग किया जाता है, इसलिये इस Looping Statement को निम्नानुसार उपयोग में लेकर हम किसी Associative Array के सभी Elements के मानों को Access कर सकते हैं:

<?php
$temperature ['delhi'] = 33;
$temperature ['mumbai'] = 30;
$temperature ['rajasthan'] = 40;
$temperature ['gujrat'] = 38;
foreach($temperature as $city => $temp){
print "Temperature of $city is $temp Degree \n";
}
?>

//Output
Temperature of delhi is 33 Degree
Temperature of mumbai is 30 Degree
Temperature of rajasthan is 40 Degree
Temperature of gujrat is 38 Degree

उपरोक्त Program में हमने foreach Looping Statement को Use किया है। इस Statement में हमें Key व Value दोनों के लिए दो अलग Variables Create करने होते हैं, जैसाकि उपरोक्त Program में हमने $city व $temp नाम के दो Variables Create किए हैं।

ये Loop हर Iteration में Associative Array के एक Element को Access करता है और उस Element की Key को $city नाम के Variable में तथा Value को $temp नाम के Variable में Store कर देता है। फिर Loop आगे बढता है और print Statement द्वारा Currently Selected City के नाम व उसके Temperature को Screen पर Display कर देता है। फिर Loop अगले Array Element को Access करता है और यही प्रक्रिया तब तक चलती रहती है, जब तक कि Array का अन्तिम Element Access नहीं हो जाता।

जब हम Associative Array में एक Single Word को Key के रूप में Specify करते हैं, तब हमें Array के Element को Access करने के लिये उस Single Word को Quotes के बीच Specify करना जरूरी नहीं होता। उदाहरण के लिए हम उपरोक्त Program को निम्नानुसार भी लिख सकते हैं:

<?php
$temperature [delhi] = 33;
$temperature [mumbai] = 30;
$temperature [rajasthan] = 40;
$temperature [gujrat] = 38;
foreach($temperature as $city => $temp){
print "Temperature of $city is $temp Degree \n";
}
?>

उपरोक्त Program में आप देख सकते हैं कि हमने Array के विभिन्न Keys के साथ Quotes का प्रयोग नहीं किया है और हम ऐसा तब कर सकते हैं जब Key के रूप में हम एक Single Word को Specify करते हैं।

साथ ही जब हम Constants को Array की Key के रूप में Specify करते हैं, तब उन Constants को बिना Quotes के Specify किया जाना जरूरी होता है। इस स्थिति में Constants व Variable Keys के बीच Confusion की स्थिति बन सकती है। इसलिये हमें हमेंशा Keys को Quotes के बीच ही Specify करना चाहिए। ऐसा करने से Program में Associative Array से संबंधित गलतियां होने की सम्भावना कम रहती है। किसी Constant को हम निम्नानुसार Associative Array की Key के रूप में Use कर सकते हैं:

<?php
$temperature [] = 33;
$temperature [] = 30;
$temperature [] = 40;
$temperature [] = 38;
define('index', 2);
print $temperature[index];
?>

इस उदाहरण में हम देख सकते हैं कि हमने $temperature Array के Index Number 2 को एक “index” नाम के Constant में Specify किया है और फिर उस Constant को $temperature[index] Statement में Use किया है। यदि हम यहां पर इस Constant को Quotes के बीच Specify करें, तो PHP हमें Error देता है।

इसलिये उपयुक्त यही रहता है कि भले ही Single Word का ही Key क्यों न हो, हमें Keys को हमेंशा Quotes के बीच ही Specify करना चाहिए क्योंकि Constants को हमें हमेंशा बिना Quotes के Specify करना जरूरी होता है। जब हम Associative Array को Print या Echo जैसे किसी Statement में Use करते हैं, तब भी हमें Keys को बिना Quotes के Specify करना जरूरी होता है, अन्यथा PHP Error Generate करता है। उदाहरण के लिये हम निम्न तरीके से Associative Array के किसी Element के मान को Display नहीं कर सकतेः

print “Temperature of Delhi is $temperature[‘delhi’]”;
print “Temperature of Delhi is $temperature[“delhi”]”;

यदि हम उपरोक्त तरीके से किसी Associative Array के किसी Element के मान को Display करना चाहें, तो हमें उपरोक्त Statements को बिना Quotes के निम्नानुसार लिखना पडता हैः

print "Temperature of Delhi is $temperature[delhi]";

अब उपरोक्त Statement सही है क्योंकि इस Statement में हमने Key के साथ Specified Quotes को हटा दिया है।

जैसाकि हमने पहले भी कहा कि हम किसी Associative Array की Key के रूप में किसी Floating Point Value को भी Specify कर सकते हैं। इसलिये जब हम Array के Index Number के रूप में किसी Floating Point Value को Specify करते हैं, तब PHP स्वयं उस Floating Point Value को Integer Value में Convert करने के बाद उस Integer Value को Index Number की तरह उपयोग में ले लेता है। इसे हम निम्न उदाहरण द्वारा समझ सकते हैं:

<?php
$temperature [1.2] = 33;
$temperature [2.5] = 30;
$temperature [3.1] = 40;
$temperature [5.0] = 38;
print_r($temperature);
?>

//Output
Array
(
[1] => 33
[2] => 30
[3] => 40
[5] => 38
)

उपरोक्त Output द्वारा हम समझ सकते हैं कि PHP किस तरह से Associative Array में Index Number के रूप में Specify किये गए सभी Floating Point Values को Integer Values में Convert करके उसे Key की तरह उपयोग में ले लेता है। PHP में हम किसी Calculated Field से Generate होने वाले मान को भी Index Number अथवा Key की तरह उपयोग में ले सकते हैं। इसे समझने के लिये निम्न उदाहरण देखते हैं:

<?php
$temperature['city1'] = 33;
$temperature['city2'] = 30;
$temperature['city3'] = 40;
$temperature['city4'] = 38;
for($i = 1; $i <= count($temperature); $i++){
print "Temperature of city$i is " . $temperature["city$i"] . " \n";
}
?>

//Output
Temperature of city1 is 33
Temperature of city2 is 30
Temperature of city3 is 40
Temperature of city4 is 38

इस Program में हमने print Statement में $temperature[“city$i“] Expression Specify किया है। आप देख सकते हैं कि हमने किस तरह से इस Associative Array में विभिन्न City Keys को प्राप्त करने के लिए city$i Expression को Use किया है। यानी हम हमारी जरूरत के अनुसार PHP में किसी Associative Array के किसी एक या एक से ज्यादा Elements को प्राप्त करने के लिये ये तरीका भी उपयोग में ले सकते हैं।

इस Program में हमने for Loop को Use किया है और ये Loop केवल चार बार ही चले, इसलिये हमने Array के लिए count() Function को Use किया है। ये Function Argument के रूप में एक Array या Object लेता है और Output में Array के कुल Elements की संख्‍या अथवा Object की कुल Properties की संख्‍या Return करता है।

चूंकि हमारे उपरोक्त उदाहरण में $temperature Array में मात्र चार ही Elements हैं, इसलिये count() Function केवल 4 Return करता है। परिणामस्वरूप for Loop के Conditional Part में $i <= count($temperature); Expression $i <= 4 में Convert हो जाता है व ये For Loop केवल चार बार ही चलता है।

PHP in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS