6.3 创建数组

6.3 创建数组

与其他很多语言的数组实现方式不同,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();
创建一个数组并赋值
$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开始作为索引值.
示例:

[复制到剪切板]
CODE:
<?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开始作为索引值.

示例:

[复制到剪切板]
CODE:
<?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
    [2] => www.mysql.com
    [php] => www.php.net
    [3] => www.apache.org
)
存在最大的整数索引值2,新的键名将为3.

数组的键是唯一的,如果指定的键名已经有了值,则该值会被覆盖.
示例;

[复制到剪切板]
CODE:
<?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.

示例:

[复制到剪切板]
CODE:
<?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
)
好了,现在创建多维数组.其实多维数组和一维数组类似,大家触类旁通就是.

示例:

[复制到剪切板]
CODE:
<?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
)
如履薄冰

不错..加油!.

GOOD

学到东西了,谢谢!

写的很好,向你学习了!

不错 学习下哈