与其他很多语言的数组实现方式不同,PHP不需要在创建数组时指定其大小和类型.甚至不需要在使用数组前先行声明.
/*********************************************
* PHPfans系列教程:
*
http://www.phpfans.net/bbs/forumdisplay.php?fid=25
* 作 者: 我不是鱼
* Email:
[email protected]
* 博 客: http://www.phpfans.net/space/?2
*********************************************/
语法 array ( [mixed ...] )
可以用 array() 语言结构来新建一个 array.它接受一定数量用逗号分隔的 key => value 参数对.
注: array() 是一个语言结构,用于字面上表示数组,不是常规的函数.
key 可以是 integer 或者 string, value 可以是任何值
创建一个数组
创建一个数组并赋值
$arr = array('phpfans','php','MySQL','javascript','html','css'); |
或者
$array[] = 'phpfans';
$array[] = 'php';
$array[] = 'MySQL';
$array[] = 'javascript';
$array[] = 'html';
$array[] = 'css'; |
上面的$arr 和 $array 是相同的数组,只是赋值方式不同.
带键值的数组
$arr = array(
'phpfans' => 'www.phpfans.net',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
); |
或者
$array['phpfans'] = 'www.phpfans.net';
$array['php'] = 'www.php.net';
$array['mysql'] = 'www.mysql.com';
$array['apache'] = 'www.apache.org'; |
另外php和javascript等不同,数组的最后一项加逗号也没有错误,如 array('phpfans','php',);
如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加1.如果不存在最大的整数索引值,则以0开始作为索引值.
示例:
<?php
$arr = array(
'phpfans' => 'www.phpfans.net',
'php' => 'www.php.net',
'www.mysql.com',
'www.apache.org'
);
print_r($arr);
?> ;
输出:
Array
(
[phpfans] => www.phpfans.net
[php] => www.php.net
[0] => www.mysql.com
[1] => www.apache.org
) |
不存在最大的整数索引值,则以0开始作为索引值.
示例:
<?php
$arr = array(
'phpfans' => 'www.phpfans.net',
'php' => 'www.php.net',
2 => 'www.mysql.com',
'www.apache.org'
);
print_r($arr);
?> ;
输出;
Array
(
[phpfans] => www.phpfans.net
[2] => www.mysql.com
[php] => www.php.net
[3] => www.apache.org
) |
存在最大的整数索引值2,新的键名将为3.
数组的键是唯一的,如果指定的键名已经有了值,则该值会被覆盖.
示例;
<?php
//PHPfans站系列教程:
//http://www.phpfans.net/bbs/forumdisplay.php?fid=25
$array['phpfans'] = 'www.phpfans.net';
$array['php'] = 'www.php.net';
$array['mysql'] = 'www.mysql.com';
$array['apache'] = 'www.apache.org';
$array['mysql'] = '我覆盖掉mysql之前赋的值了';
print_r($array);
?> ;
输出
Array
(
[phpfans] => www.phpfans.net
[php] => www.php.net
[mysql] => 我覆盖掉mysql之前赋的值了
[apache] => www.apache.org
) |
键为 mysql 的值被覆盖掉.
下面介绍一下range()函数
range -- 建立一个包含指定范围单元的数组
说明
array range ( mixed low, mixed high [, number step] );
新参数: 可选的 step 参数是 PHP 5.0.0 新加的.如果给出了 step 的值,它将被作为单元之间的步进值.step 应该为正值.如果未指定,step 则默认为 1.
示例:
<?php
$arr = range(0,9);
print_r($arr);
?> ;
输出:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
) |
好了,现在创建多维数组.其实多维数组和一维数组类似,大家触类旁通就是.
示例:
<?php
//PHPfans站系列教程:
//http://www.phpfans.net/bbs/forumdisplay.php?fid=25
$arr = array(
'phpfans' => 'www.phpfans.net',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
$array[] = 'phpfans';
$array[] = $arr;//数组的值又是一个数组
$array[] = 'MySQL';
$array[] = 'javascript';
$array[] = 'html';
$array[] = 'css';
print_r($array);
?> ;
输出:
Array
(
[0] => phpfans
[1] => Array
(
[phpfans] => www.phpfans.net
[php] => www.php.net
[mysql] => www.mysql.com
[apache] => www.apache.org
)
[2] => MySQL
[3] => javascript
[4] => html
[5] => css
) |