PHP多维数组。
定义和用法
PHP中的多维数组可以视为数组数组,因此数组中的每个元素都是数组本身。多维数组的内部元素可以是关联的或索引的。
尽管数组可以嵌套到任何级别,但最外层的二维数组在最外层具有一个以上的数组
语法
//two dimensional associative array 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版本
从PHP5.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
下面的示例将关联数组作为元素的索引2D数组
示例
<?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