前面所述的都是一维数组,PHP中还有二维数组和多维数组,这两种数组在实际编程中也经常用到,本节介绍二维数组和多维数组及其使用。
将两个一维数组组合起来就可以构成一个二维数组,使用二维数组可以保存较为复杂的数据,在一些场合经常用到。示例如下:
<?php $person = array('lily' => array('age'=>'20 years','weight'=>'50kg', 'hobby'=>'sleep'), 'Tom' => array('age'=>'12 years','weight'=>'40kg', 'hobby'=>'eat'), 'Andy' => array('age'=>'30 years','weight'=>'70kg', 'hobby'=>'write') ); print_r($person); ?>
Lily、Tom和Andy对应的值分别是个一维数组,这3个一维数组组成了一个二维数组。运行该程序的结果为:
Array ( [lily] => Array ( [age] => 20 years [weight] => 50kg [hobby] => sleep ) [Tom] => Array ( [age] => 12 years [weight] => 40kg [hobby] => eat ) [Andy] => Array ( [age] => 30 years [weight] => 70kg [hobby] => write ) )
参考二维数组,举一反三,可以很容易地创建三维数组、四维数组或者其他更高维数的数组。定义一个三维数组的示例如下:
<?php $arr = array('安徽' => array('阜阳'=>array('阜南县','临泉县','颍州区'), '宿州'=>array('墉桥区','灵璧县','泗县'), '合肥'=>array('蜀山区','长丰县','肥东')), '河南' => array('洛阳'=>array('西工区','老城区','孟津县'), '郑州市'=>array('中原区','金水区')) ); print_r($arr); echo $array['安徽']['宿州'][0]; // 输出墉桥区 ?>
其中“安徽”对应的是一个二维数组,“阜阳”“宿州”“合肥”分别对应一个一维数组,同理“河南”也对应一个二维数组,“安徽”和“河南”分别对应一个二维数组,它俩组合起来形成一个多维数组。
PHP中对多维数组没有上限的固定限制,但是随着维数的增加,数组会越来越复杂,对于阅读调试和维护都会稍微困难些。