首页 > PHP 阅读:2

PHP二维数组和多维数组

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 $arr['安徽']['宿州'][0];  // 输出墉桥区
?>
其中“安徽”对应的是一个二维数组,“阜阳”“宿州”“合肥”分别对应一个一维数组;同理,“河南”也对应一个二维数组。“安徽”和“河南”分别对应一个二维数组,它俩组合起来形成一个三维数组。

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

以上程序的运行结果为:

Array
(
    [安徽] => Array
    (
        [阜阳] => Array
        (
            [0] => 阜南县
            [1] => 临泉县
            [2] => 颍州区
        )

        [宿州] => Array
        (
            [0] => 墉桥区
            [1] => 灵璧县
            [2] => 泗县
        )

        [合肥] => Array
        (
            [0] => 蜀山区
            [1] => 长丰县
            [2] => 肥东
        )
    )

    [河南] => Array
    (
        [洛阳] => Array
        (
            [0] => 西工区
            [1] => 老城区
            [2] => 孟津县
        )

        [郑州市] => Array
        (
            [0] => 中原区
            [1] => 金水区
        )
    )
)
墉桥区