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

