ความหมายและการใช้งาน
อาร์เรย์หลายมิติใน PHP ถือเป็นอาร์เรย์ของอาร์เรย์เพื่อให้แต่ละองค์ประกอบภายในอาร์เรย์เป็นอาร์เรย์เอง องค์ประกอบภายในของอาร์เรย์หลายมิติอาจเป็นการเชื่อมโยงหรือจัดทำดัชนี
แม้ว่าอาร์เรย์สามารถซ้อนกันได้ไม่เกินระดับใด ๆ อาร์เรย์สองมิติที่มีอาร์เรย์มากกว่าหนึ่งมิติภายในชั้นนอกสุดมีประโยชน์จริง
ไวยากรณ์
//two dimensional associative array twodim = array( "row1"=>array(k1=>v1,k2=>v2,k3=>v3), "row2"=>array(k4=>v4,k5=>v5,k6=>v6) ) //two dimensional indexed array twodim=array( array(v1,v2,v3), array(v4,v5,v6) )
ในกรณีของอาร์เรย์สองมิติที่จัดทำดัชนี เราสามารถเข้าถึงองค์ประกอบจากอาร์เรย์โดยใช้ดัชนีของอาร์เรย์ด้วยรูปแบบต่อไปนี้:
$arr[row][column];
เวอร์ชัน PHP
ใช้วงเล็บเหลี่ยมสำหรับกำหนดอาร์เรย์ได้ตั้งแต่ PHP 5.4
ตัวอย่างต่อไปนี้แสดงอาร์เรย์ 2D ที่จัดทำดัชนีโดยแต่ละองค์ประกอบเป็นอาร์เรย์ที่จัดทำดัชนี
ตัวอย่าง
<?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
ตัวอย่างต่อไปนี้ได้จัดทำดัชนีอาร์เรย์ 2 มิติที่มีอาร์เรย์เชื่อมโยงเป็นองค์ประกอบ
ตัวอย่าง
<?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