6.4 访问数组数据

6.4 访问数组数据

我们创建了数组,如何访问数组中的数据呢?
比如我要得倒索引为0或索引为phpfans的数据

/*********************************************
* PHPfans系列教程:
* http://www.phpfans.net/bbs/forumdisplay.php?fid=25
* 作 者: 我不是鱼
* Email:[email protected]
* 博 客:  http://www.phpfans.net/space/?2
*********************************************/

示例:

[复制到剪切板]
CODE:
<?php 
$array 
= array('phpfans','php','MySQL','javascript','html','css');
$arr = array(
   
'phpfans' => 'www.phpfans.net',
   
'php' => 'www.php.net',
   
'mysql' => 'www.mysql.com',
   
'apache' => 'www.apache.org'
);
echo 
$array[0];
echo 
'<br>';
echo 
$arr['phpfans'];
?> ;


输出:
phpfans
www.phpfans.net
多维数组的也类似
示例:

[复制到剪切板]
CODE:
<?php 
$arr 
= array(=> 'phpfans',=> array('phpfans' => 'www.phpfans.net','php' => 'www.php.net'),=> 'MySQL');
echo 
$arr[0];
echo 
'<br>';
echo 
$arr[1]['phpfans'];
?> ;


输出
phpfans
www.phpfans.net
注意的问题

应该始终在用字符串表示的数组索引上加上引号.例如用 $arr['phpfans'] 而不是 $arr[phpfans].可能在老的脚本中见过如下语法:

[复制到剪切板]
CODE:
<?php
$arr
['phpfans'] = 'www.phpfans.net';
echo 
$arr[phpfans];
?> ;


这样是错的,虽然php给出Notice信息,但可以运行.那么为什么错了呢?原因是此代码中有一个未定义的常量(phpfans)而不是字符串('phpfans'),它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串.例如,如果没有常量定义为 phpfans,PHP 将把它替代为 'phpfans' 并使用之.看看下面的例子
示例:

[复制到剪切板]
CODE:
<?php
error_reporting
(E_ALL E_NOTICE);//屏蔽Notice信息
$arr['phpfans'] = 'www.phpfans.net';
echo 
$arr[phpfans];//或者@$arr[phpfans]屏蔽Notice信息
?> ;

可以输出
www.phpfans.net
示例:

[复制到剪切板]
CODE:
<?php
//PHPfans站系列教程:
//http://www.phpfans.net/bbs/forumdisplay.php?fid=25
define('phpfans','mysql');//定义常量phpfans
$arr['phpfans'] = 'www.phpfans.net';
$arr['mysql'] = 'www.mysql.com';
echo 
$arr[phpfans];
?> ;


输出的却是
www.mysql.com
如履薄冰

看玩了,这一课主要讲的是数组的引用问题.