PHP Multidimensional Array

PHP Multidimensional Array: जिस तरह से हम किसी Array में Value के रूप में किसी Scalar Type के मान को Store कर सकते हैं, उसी तरह से हम किसी Array में जब किसी दूसरे Array को Value के रूप में Store कर देते हैं, तो बनने वाला Array एक प्रकार का Multidimensional Array होता है।

Multidimensional Array को भी हम Indexed Basedarray() Constructor Based दो तरीकों से Create कर सकते हैं। जब हम Indexed Based तरीके का प्रयोग करके Multidimensional Array Create करते हैं, तब हमें हर Dimension के लिए एक [ ] Bracket Pair का प्रयोग करना पडता है।

उदाहरण के लिए एक Dimension का Array Create करने के लिए हमने एक बार [ ] Bracket Pair का प्रयोग किया था। जबकि दो Dimension के लिए हमें निम्नानुसार दो [ ][ ] Bracket Pair का प्रयोग करना पडेगाः

<?php
$table[0][ ] = 1;
$table[0][ ] = 2;
$table[0][ ] = 3;

$table[1][ ] = 4;
$table[1][ ] = 5;
$table[1][ ] = 6;

$table[2][ ] = 7;
$table[2][ ] = 8;
$table[2][ ] = 9;

print_r($table);
?>

इस Program का Output निम्नानुसार प्राप्त होता हैः

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)

उपरोक्त Output देखकर हम समझ सकते हैं कि $table नाम के Array में हर Element एक और Array है। यानी उपरोक्त Output को हम निम्नानुसार भी समझ सकते हैं:

Array
(
    [0] => Array ( … )
    [1] => Array ( … )
    [2] => Array ( … )
)

यानी उपरोक्त Program में $table नाम का Array एक ऐसा Array है, जिसमें तीन और Arrays हैं, जो कि $table नाम के Array के Elements हैं और क्रमश:  Index Number 0, 1 व 2 पर Stored हैं।

एक 2-Dimensional Array को हम एक सारणी की तरह मान सकते हैं, जिसमें Array का पहला Dimension सारणी की Row को Represent करता है जबकि दूसरा Dimension सारणी के Columns को Represent करता है। इस तरह से यदि हम उपरोक्त Program के Output को एक सारणी के रूप में Represent करें, तो हमें प्राप्त होने वाला Output निम्नानुसार होगाः

Position of Values in Table

[0][1] [0][2] [0][3]
[1][1] [1][2] [1][3]
[2][1] [2][2] [2][3]
Values at Index Number

1 2 3
4 5 6
7 8 9

इस स्थिति में यदि हम उपरोक्त Program में विभिन्न Elements के मानों को अलग-अलग Access करना चाहें, तो हमें निम्नानुसार Statements Use करने होंगेः

ECHO "Value at Index Number [0][0] = {$table[0][0]} \n";
ECHO "Value at Index Number [0][1] = {$table[0][1]} \n";
ECHO "Value at Index Number [0][2] = {$table[0][2]} \n";

ECHO "Value at Index Number [1][0] = {$table[1][0]} \n";
ECHO "Value at Index Number [1][1] = {$table[1][1]} \n";
ECHO "Value at Index Number [1][2] = {$table[1][2]} \n";

ECHO "Value at Index Number [2][0] = {$table[2][0]} \n";
ECHO "Value at Index Number [2][1] = {$table[2][1]} \n";
ECHO "Value at Index Number [2][2] = {$table[2][2]} \n";

उपरोक्त Code में हम देख सकते हैं कि Index Numbers के अलावा बाकी सभी Contents ज्यों के त्यों हर Line में Repeat हो रहे हैं और Repeating Statements को Handle करने के लिये PHP हमें Looping Statements Provide करता है। यानी Looping Statement का प्रयोग करके हम उपरोक्त Statements को थोडा कम करने के लिये निम्नानुसार तीन For Loop भी Use कर सकते हैं:

for($i=0; $i<3; $i++){
	ECHO "Value at Index Number [0][$i] = {$table[0][$i]} \n";
}
Echo "\n";

for($i=0; $i<3; $i++){
	ECHO "Value at Index Number [1][$i] = {$table[1][$i]} \n";
}
Echo "\n";

for($i=0; $i<3; $i++){
	ECHO "Value at Index Number [2][$i] = {$table[2][$i]} \n";
}

यहां भी हम देख सकते हैं कि तीन For Loops का प्रयोग किया जा रहा है और यदि हम चाहें तो इन तीन For Loops के स्थान पर Nested Looping का प्रयोग करके केवल दो Loops द्वारा ही एक 2-Dimensional Array के सभी Elements के मानों को Display कर सकते हैं। ये काम हम निम्नानुसार कर सकते हैं:

for($i=0; $i<3; $i++){
	for($j=0; $j<3; $j++){
		ECHO "Value at Index Number [$i][$j] = {$table[$i][$j]} \n";
	}
}

यहां Outer Loop Array के Rows को Represent करता है, जबकि Inner Loop Array के विभिन्न Columns को Represent करता है। इन सभी Statements का Output निम्नानुसार ही प्राप्त होता हैः

Value at Index Number [0][0] = 1
Value at Index Number [0][1] = 2
Value at Index Number [0][2] = 3
Value at Index Number [1][0] = 4
Value at Index Number [1][1] = 5
Value at Index Number [1][2] = 6
Value at Index Number [2][0] = 7
Value at Index Number [2][1] = 8
Value at Index Number [2][2] = 9

यदि हम चाहें तो उपरोक्त Results को एक सारणी के रूप में भी Display करवा सकते हैं, जिससे हमें ये समझना आसान हो जाता है कि किस प्रकार से एक 2-Dimensional Array एक Table की तरह विभिन्न मानों को विभिन्न Index Number Combination पर Store करता है। इसके लिये हमें हमारे For Loop को निम्नानुसार Modify करना होगाः

for($i=0; $i<3; $i++){
	for($j=0; $j<3; $j++){
		ECHO "\t[$i][$j] = {$table[$i][$j]}";
	}
Echo "\n";
}

अब हमें हमारा Output निम्नानुसार प्राप्त होता हैः

        [0][0] = 1      [0][1] = 2      [0][2] = 3
        [1][0] = 4      [1][1] = 5      [1][2] = 6
        [2][0] = 7      [2][1] = 8      [2][2] = 9

जब हम Multidimensional Array को समझ रहे होते हैं, तब हमें केवल इतना ध्यान रखना होता है कि जितने Dimension का Array Create करना हो, हमें Index Based Syntax का प्रयोग करते समय उतने ही [ ] Bracket Pair का प्रयोग करना होता है और इस Index Based Syntax द्वारा Create किये गए Array के सभी Elements को Access करने के लिये हमें उतने ही Level के Nested Loops को Use करना होता है।

चूंकि हमारे पिछले उदाहरण में हमने केवल 2-Diomensiona Array Create किया है, इसलिये इस Array के सभी Elements को Access करने के लिये हमें दो for Loops Nested Form में Use करने पडे हैं। इसी स्थान पर यदि 3 या 4 Dimension का Array होता, तो हमें तीन या चार Level तक के Nested For Loops को Use करना होता।

जिस तरह से हमने Indexed Based तरीके का प्रयोग करके Multidimensional Array Create किया है, उसी तरह से हम array() Constructor का प्रयोग करके भी Multidimensional Array Create कर सकते हैं। Indexed Based Array की तुलना में इस तरीके से Multidimensional Array Create करना काफी आसान होता है। जैसेः

<?php
	$row_0 = array(1, 2, 3);
	$row_1 = array(4, 5, 6);
	$row_2 = array(7, 8, 9);
	$multi = array($row_0, $row_1, $row_2);
	
	print_r($multi);
?>

उपरोक्त उदाहरण में हमने $row_0, $row_1$row_2 तीन Array Create किये हैं और फिर $multi नाम का एक चौथा Array Create किया है, जिसमें Value के रूप में पहले Create किये गए तीनों Arrays को Value के रूप में Specify कर दिया है।

परिणामस्वरूप $multi नाम का Array एक Multidimensional Array बन गया है। इसी Array को यदि हम एक Single Line के Statement द्वारा Create करना चाहें, तो हमारा Statement निम्नानुसार होता हैः

<?php
	$multi = array(
				array(1, 2, 3), 
				array(4, 5, 6), 
				array(7, 8, 9)
			);
	
	print_r($multi);
?>

इस Program का Output हमें निम्नानुसार प्राप्त होता है, जो कि हमारे द्वारा पहले Create किये गए Indexed Based Multidimensional Array के Output के समान ही हैः

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )
)

PHP का Array अन्य Programming Languages की तरह केवल एक ही प्रकार के मानों को Store नहीं करता, बल्कि PHP में हम एक ही Array में एक से ज्यादा प्रकार के मानों को भी Store कर सकते हैं। इसे हम निम्न Program द्वारा समझ सकते हैं:

<?php
	$multi = array(
				'General Array',
				array('Delhi', 'Rajasthan', 'Maharastra'), 
				array(40, 35, 50), 
			);
	
	print_r($multi);
?>

Array
(
    [0] => General Array
    [1] => Array
        (
            [0] => Delhi
            [1] => Rajasthan
            [2] => Maharastra
        )

    [2] => Array
        (
            [0] => 40
            [1] => 35
            [2] => 50
        )
)

उपरोक्त उदाहरण में हमने Mixed प्रकार के मानों को एक ही Array में Store किया है, जहां $multi नाम के Array में पहले Item के रूप में एक String है जबकि अन्य दो Items के रूप में दो Sub-Arrays हैं और इन Sub-Arrays में भी एक Array में String के रूप में तीन शहरों के नाम हैं जबकि दूसरे Sub-Array में तीन Integer Values हैं।

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

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS