一步一步学习PHP(8) php 数组


Posted in PHP onMarch 05, 2010

1. PHP中的数组
与其把PHP中的数组理解为我们狭义上的“数组”,我觉得还不妨把这个数组一分为二,一者为我们常规上的数组,一者为我们的Dictionary。
2. 创建数组
如果数组不存在,那么向数组中存放值将会创建数组。

<?php 
$address[0]='北京'; 
$address[1]='上海'; 
$address[2]='南京'; 
$introduce['北京']='首都'; 
$introduce['上海']='国际大都市'; 
$introduce['南京']='不了解了'; 
?>

还有一种较为正统的方法,使用array()语言结构,这也是我倾向的一种方式:
<?php 
$address=array('北京','上海','南京'); 
$introduce=array('北京'=>'首都', 
'上海'=>'国际大都市', 
'南京'=>'不了解了' 
); 
?>

当然我们还可以用这样的方式创建一个空数组:
<?php 
$nullArray=array(); 
?>

3. 访问数组元素
访问数组元素其实和传统方式一样:
<?php 
$address=array('北京','上海','南京'); 
$introduce=array('北京'=>'首都', 
'上海'=>'国际大都市', 
'南京'=>'不了解了' 
); 
echo($address[1]); 
echo($introduce['上海']); 
?>

4. 遍历数组元素
遍历数组最常用的方式就是foreach,也比较通用。
<?php 
$address=array('北京','上海','南京'); 
$introduce=array('北京'=>'首都', 
'上海'=>'国际大都市', 
'南京'=>'不了解了' 
); 
foreach($address as $value) 
{ 
echo($value.'<br/>'); 
} 
foreach($introduce as $key=>$value) 
{ 
echo("$key => $value <br/>"); 
} 
?>

foreach遍历数组很容易,但是他有一个缺点,就是他并不是直接操作原数组,而是在遍历前先复制一份原数组的拷贝,这样就造成了时间和空间上的浪费。
那么有个简单的方法,就是for。
<?php 
$address=array('北京','上海','南京'); 
$introduce=array('北京'=>'首都', 
'上海'=>'国际大都市', 
'南京'=>'不了解了' 
); 
for($i=0;$i<count($address);$i++) 
{ 
echo("$address[$i]<br/>"); 
} 
?>

这个虽然简单,但是也有缺点,就是只可以遍历索引数组,没有办法遍历字典。
于是,在PHP中提出了迭代器函数。
其中最常用的就是each()函数。看个简单的例子吧:
<?php 
$introduce=array('城市名'=>'介绍', 
'北京'=>'首都', 
'上海'=>'国际大都市', 
'南京'=>'不了解了' 
); 
reset($introduce); 
echo('<table>'); 
while(list($city,$intro)=each($introduce)) 
{ 
echo("<tr><td>$city</td><td>$intro</td>"); 
} 
echo('</table>'); 
?>

一步一步学习PHP(8) php 数组 
做个解释,each()函数用于遍历数组元素,类似于我们在常规意义上的迭代器。而且使用迭代函数的最大好处是并不会像foreach语言结构一样产生一个原数组的拷贝,在处理大数组时是很有用的。
PHP 相关文章推荐
利用discuz实现PHP大文件上传应用实例代码
Nov 14 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
详解php中反射的应用
Mar 15 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
php遍历解析xml字符串的方法
May 05 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 #PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 #PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 #PHP
PHP MVC模式在网站架构中的实现分析
Mar 04 #PHP
通用PHP动态生成静态HTML网页的代码
Mar 04 #PHP
php绝对路径与相对路径之间关系的的分析
Mar 03 #PHP
PHP开发中常用的三个表单验证函数使用小结
Mar 03 #PHP
You might like
How do I change MySQL timezone?
2008/03/26 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
js模拟类继承小例子
2010/07/17 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
Python 处理数据的实例详解
2017/08/10 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python中的itertools的使用详解
2020/01/13 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
工厂门卫岗位职责
2013/11/25 职场文书
英文商务邀请信
2014/01/22 职场文书
视光学专业自荐信
2014/06/24 职场文书
护士求职信
2014/07/05 职场文书
离婚协议书的范本
2015/01/27 职场文书
施工安全员岗位职责
2015/04/11 职场文书
唐山大地震观后感
2015/06/05 职场文书
学习十八大的感悟
2015/08/11 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS