PHP7实践指南:O2O网站与App后台开发
上QQ阅读APP看书,第一时间看更新

6.2 二维数组和多维数组

前面所述的都是一维数组,PHP中还有二维数组和多维数组,这两种数组在实际编程中也经常用到,本节介绍二维数组和多维数组及其使用。

6.2.1 二维数组

将两个一维数组组合起来就可以构成一个二维数组,使用二维数组可以保存较为复杂的数据,在一些场合经常用到。示例如下:

        <? 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 ) )

6.2.2 多维数组

参考二维数组,举一反三,可以很容易地创建三维数组、四维数组或者其他更高维数的数组。定义一个三维数组的示例如下:

        <? php
        $arr=array(’安徽’=>array(’阜阳’=>array(’阜南县’, ’临泉县’, ’颍州区’),
                                    '宿州’=>array(’墉桥区’, ’灵璧县’, ’泗县’),
                                    '合肥’=>array(’蜀山区’, ’长丰县’, ’肥东’)),
                    '河南’=>array(’洛阳’=>array(’西工区’, ’老城区’, ’孟津县’),
                                    '郑州市’=>array(’中原区’, ’金水区’))
            );
        print_r($arr);
        echo$array[’安徽’][’宿州’][0]; // 输出墉桥区
        ?>

其中,“安徽”对应的是一个二维数组,“阜阳”“宿州”“合肥”分别对应一个一维数组。同理,“河南”也对应一个二维数组。“安徽”和“河南”分别对应一个二维数组,它俩组合起来形成一个多维数组。

PHP中对多维数组没有上限的固定限制,但是随着维度的增加数组会越来越复杂,对于阅读调试和维护都会稍微困难些。