PHP 多维数组

phpserver side programmingprogramming更新于 2025/8/19 9:37:17

定义和用法

PHP 中的多维数组可以被视为数组的数组,因此数组中的每个元素本身就是一个数组。多维数组的内部元素可以是关联的,也可以是索引的。

虽然数组可以嵌套任意层级,但内部包含多维数组(最外层包含多个维数组)的二维数组才是实际应用的。

语法

//二维关联数组
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 "
"; } $cols=count($arrs[0]); $rows=count($arrs); for ($i=0; $i<$rows; $i++){    for ($j=0;$j<$cols;$j++){       echo $arrs[$i][$j] . " ";    }    echo "
"; } ?>

输出

这将产生以下结果 −

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 "
"; } for ($row=0; $row < count($arrs); $row++){    foreach ($arrs[$row] as $i=>$j){       echo $i . "->" .$j . " ";    }    echo "
"; } ?>

输出

这将产生以下结果 −

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 "
"; } ?>

输出

这将产生以下结果 −

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 "
"; } ?>

输出

这将产生以下结果 −

Langs: PHP Java Python
DB: Oracle MySQL SQLite

相关文章