一步一步学习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 相关文章推荐
新浪新闻小偷
Oct 09 PHP
一个程序下载的管理程序(三)
Oct 09 PHP
php下连接mssql2005的代码
Jan 17 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
Jul 25 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
php实现网页缓存的工具类分享
Jul 14 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
PHP安全之register_globals的on和off的区别
Jul 23 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
短波收音机简介
2021/03/01 无线电
php字符串截取问题
2006/11/28 PHP
PHP 加密与解密的斗争
2009/04/17 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
python实现2014火车票查询代码分享
2014/01/10 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python实现三维拟合的方法
2018/12/29 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python画微信表情符的实例代码
2019/10/09 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
会计电算化专业应届大学生求职信
2013/10/22 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
使用Ajax实现无刷新上传文件
2022/04/12 Javascript