首页 > PHP 阅读:2

PHP定义数组

编程时经常需要对一组数据进行处理,这样就会用到数组。数组是把一些列数据组织起来,形成一个可操作的整体。

数组的实体由键和值组成,键值是成对出现的,是一一对应的关系。

数组的类型

PHP 中有两种类型的数组,即索引数组和关联数组。索引数组的键由数字组成,在没有特别指定时,数组默认为索引数组。关联数组的键由字符串和数字混合组成。

关联数组示例:

$arr = array('a' => 'foo', 'b'=>'bar')

索引数组示例:

$arr = array(1=>'foo', 2=>'bar')

示例中的关联数组有两个键,分别是 a 和 b,索引数组的键是数字 1 和 2。

在数组中,如果未指定键,PHP 就将自动使用之前用过的最大的数字键加上 1 作为新的键,请看下面的例子:
<?php
$arr1 = array("foo", "bar", "hallo", "world");
var_dump($arr1);

$arr2 = array(
    "a",
    "b",
    6 => "c",
    "d",
);
var_dump($arr2);
?>
执行以上代码的结果为:

array(4) {
    [0]=>string(3) "foo"
    [1]=>string(3) "bar"
    [2]=>string(5) "hallo"
    [3]=>string(5) "world"
}
array(4) {
    [0]=>string(1) "a"
    [1]=>string(1) "b"
    [6]=>string(1) "c"
    [7]=>string(1) "d"
}

在第一个数组中没有指定键名,所以默认数组为索引数组。第二个数组中最后一个值“d”被自动赋予键名 7,这是因为之前的最大整数键名是 6。

定义数组

如前面的例子所示,在 PHP 中可以使用 array() 创建数组,除此之外还可以使用方括号[ ]创建数组,示例如下所示:
<?php
$arr['a'] = 'red';
$arr['b'] = 'orange';
$arr['c'] = 'blue';
$arr['d'] = 'green';
var_dump($arr);

$array = ['dog','cat','wolf','dragon'];
var_dump($array);

$bar[] = 'http://c.biancheng.net/php/';
$bar[] = 'PHP教程';
$bar[] = '棒极了';
var_dump($bar);
?>
执行结果如下:

array(4) {
    ["a"]=>string(3) "red"
    ["b"]=>string(6) "orange"
    ["c"]=>string(4) "blue"
    ["d"]=>string(5) "green"
}
array(4) {
    [0]=>string(3) "dog"
    [1]=>string(3) "cat"
    [2]=>string(4) "wolf"
    [3]=>string(6) "dragon"
}
array(3) {
    [0]=>string(27) "http://c.biancheng.net/php/"
    [1]=>string(9) "PHP教程"
    [2]=>string(9) "棒极了"
}


还可以使用 range() 来建立一个包含指定范围的数组,语法如下:

array range ( mixed $start , mixed $limit [, number $step = 1 ] )

参数说明:
  • start 表示数组元素的最小值;
  • limit 表示数组元素的最大值;
  • step 是可选参数,表示步进长度。step 应该为正值,如果未指定,step 默认为 1。

range() 函数将会创建一个元素值在 start 和 limit 之间的数组,请看下面的例子:
<?php
$a = range(0, 5);
$b = range(0, 5, 2);
$c = range(a, g);
$d = range(a, g, 2);

print_r($a);
print_r($b);
print_r($c);
print_r($d);
?>
执行以上程序的结果如下:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
)
Array
(
    [0] => 0
    [1] => 2
    [2] => 4
)
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
    [6] => g
)
Array
(
    [0] => a
    [1] => c
    [2] => e
    [3] => g
)