Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

อาร์เรย์มิติหลาย (Multidimensional Array) ใน PHP

นิยามและการใช้งาน

อาร์เรย์มิติหลายใน PHP สามารถจัดการได้เป็นอาร์เรย์ของอาร์เรย์ ทำให้แต่ละองค์ประกอบภายในอาร์เรย์เป็นอาร์เรย์ด้วยตัวเอง องค์ประกอบภายในอาร์เรย์มิติหลายอาจเป็นแบบอาสอซิเอทีฟ (associative) หรือแบบดัชนี (indexed) ก็ได้

แม้อาร์เรย์จะสามารถซ้อนกันได้หลายระดับ แต่อาร์เรย์สองมิติที่มีอาร์เรย์มากกว่าหนึ่งมิติภายในมิติชั้นนอกมักเป็นที่ใช้ในทางปฏิบัติมากที่สุด

รูปแบบไวยากรณ์

//อาร์เรย์สองมิติแบบอาสอซิเอทีฟ $twodim = array(     "row1"=>array(k1=>v1,k2=>v2,k3=>v3),     "row2"=>array(k4=>v4,k5=>v5,k6=>v6) ) //อาร์เรย์สองมิติแบบดัชนี $twodim=array(     array(v1,v2,v3),     array(v4,v5,v6) )

กรณีของอาร์เรย์สองมิติแบบดัชนี สามารถเข้าถึงองค์ประกอบได้ด้วยไวยากรณ์:

$arr[row][column];

รุ่น PHP

การใช้วงเล็บเหลี่ยม [] สำหรับการกำหนดอาร์เรย์ใช้ได้ตั้งแต่ PHP 5.4

ตัวอย่างต่อไปนี้แสดงอาร์เรย์สองมิติแบบดัชนี ซึ่งแต่ละองค์ประกอบเป็นอาร์เรย์ดัชนี:

ตัวอย่าง

<?php $arrs=array(     array(1,2,3,4,5),     array(11,22,33,44,55), ); foreach ($arrs as $arr){     foreach ($arr as $i){         echo $i . " ";     }     echo "\n"; } $cols=count($arrs[0]); $rows=count($arrs); for ($i=0; $i<$rows; $i++){     for ($j=0;$j<$cols;$j++){         echo $arrs[$i][$j] . " ";     }     echo "\n"; } ?>

ผลลัพธ์

1 2 3 4 5 11 22 33 44 55 1 2 3 4 5 11 22 33 44 55

ตัวอย่างต่อไปนี้มีอาร์เรย์สองมิติแบบดัชนี ที่มีอาร์เรย์อาสอซิเอทีฟเป็นองค์ประกอบ:

ตัวอย่าง

<?php $arrs=array(     array(1=>100, 2=>200, 3=>300),     array(1=>'aa', 2=>'bb', 3=>'cc'), ); foreach ($arrs as $arr){     foreach ($arr as $i=>$j){         echo $i . "->" .$j . " ";     }     echo "\n"; } for ($row=0; $row < count($arrs); $row++){     foreach ($arrs[$row] as $i=>$j){         echo $i . "->" .$j . " ";     }     echo "\n"; } ?>

ผลลัพธ์

1->100 2->200 3->300 1->aa 2->bb 3->cc 1->100 2->200 3->300 1->aa 2->bb 3->cc

ในตัวอย่างต่อไปนี้เรามีอาร์เรย์สองมิติแบบอาสอซิเอทีฟ:

ตัวอย่าง

<?php $arr1=array("rno"=>11,"marks"=>50); $arr2=array("rno"=>22,"marks"=>60); $arrs=array(     "Manav"=>$arr1,     "Ravi"=>$arr2 ); foreach ($arrs as $key=>$val){     echo "name : " . $key . " ";     foreach ($val as $i=>$j){         echo $i . "->" .$j . " ";     }     echo "\n"; } ?>

ผลลัพธ์

name : Manav rno->11 marks->50 name : Ravi rno->22 marks->60

ตัวอย่างนี้มีอาร์เรย์อาสอซิเอทีฟที่แต่ละค่าเป็นอาร์เรย์ดัชนี:

ตัวอย่าง

<?php $arr1=array("PHP","Java","Python"); $arr2=array("Oracle","MySQL","SQLite"); $arrs=array(     "Langs"=>$arr1,     "DB"=>$arr2 ); foreach ($arrs as $key=>$val){     echo $key . ": ";     for ($i=0; $i < count($val); $i++){         echo $val[$i] . " ";     }     echo "\n"; } ?>

ผลลัพธ์

Langs: PHP Java Python DB: Oracle MySQL SQLite