PHP 7从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

6.4 数组构造

按照数组的构造来分,可以把数组分为一维数组和多维数组。

6.4.1 一维数组

数组中每个数组元素都是单个变量,不管是数字索引还是关联索引,这样的数组为一维数组。

【例6.3】(实例文件:ch06\6.3.php)

    <? php
      $roomtypes = array( ’单床房’, ’标准间’, ’三床房’, 'VIP套房’);
      $prices_per_day = array(’单床房’=> 298, ’标准间’=> 268, ’三床房’=> 198, 'VIP套房'=> 368);
    ?>

其中$roomtypes和$prices_per_day都是一维数组。

6.4.2 多维数组

数组也是可以“嵌套”的,即每个数组元素也可以是一个数组,这种含有数组的数组就是多维数组,例如:

    <? php
      $roomtypes = array( array( 'type'=>’单床房’,
                              'info'=>’此房间为单人单间。',
                                  'price_per_day'=>298
                            ),
                          array( 'type'=>’标准间’,
                                'info'=>’此房间为两床标准配置。',
                                  'price_per_day'=>268
                            ),
                          array( 'type'=>’三床房’,
                              'info'=>’此房间备有三张床’,
                                  'price_per_day'=>198
                            ),
                          array( 'type'=>'VIP套房’,
                              'info'=>’此房间为VIP两间内外套房’,
                                  'price_per_day'=>368
                            )
      );
    ?>

其中$roomtypes就是多维数组。这个多维数组包含两个维数,有点像数据库中的表格,第一个array里面的每个数组元素都是一个数组,而这些数组就像数据二维表中的一行记录。这些包含在第一个array里面的array又都包含3个数组元素,分别是3个类型的信息,这就像数据二维表中的字段。

可将上面的数组绘制成图,如图6-3所示。

图6-3 程序运行结果

其实,$roomtypes就代表了这样的一个数据表。

如果出现了两维以上的数组,比如三维数组,例如:

    <? php
    $buidling = array(array( array( 'type'=>’单床房’,
                              'info'=>’此房间为单人单间。',
                                  'price_per_day'=>298
                            ),
                          array( 'type'=>’标准间’,
                              'info'=>’此房间为两床标准配置。',
                                  'price_per_day'=>268
                            ),
                          array( 'type'=>’三床房’,
                              'info'=>’此房间备有三张床’,
                                  'price_per_day'=>198
                            ),
                          array( 'type'=>'VIP套房’,
                              'info'=>’此房间为VIP两间内外套房’,
                                  'price_per_day'=>368
                            )
                      ),
                      array( array( 'type'=>’普通餐厅包房’,
                              'info'=>’此房间为普通餐厅包房。',
                                  'roomid'=>201
                            ),
                          array( 'type'=>’多人餐厅包房’,
                              'info'=>’此房间为多人餐厅包房。',
                                  'roomid'=>206
                            ),
                          array( 'type'=>’豪华餐厅包房’,
                              'info'=>’此房间为豪华餐厅包房。',
                                  'roomid'=>208
                            ),
                          array( 'type'=>'VIP餐厅包房’,
                              'info'=>’此房间为VIP餐厅包房’,
                                  'roomid'=>310
                            )
                      )
                );
    ?>

这个三维数组在原来的二维数组后面又增加了一个二维数组,给出了餐厅包房的数据二维表信息。把这两个二维数组作为更外围array的两个数组元素就产生了第三维。这个表述等于用两个二维信息表表示一个名为$building的数组对象,如图6-4所示。

图6-4 程序运行结果