一步一步学习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 相关文章推荐
基于php权限分配的实现代码
Apr 28 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
微信API接口大全
Apr 15 PHP
PHP 错误处理机制
Jul 06 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
详解php中反射的应用
Mar 15 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
php写入文件不覆盖的实例讲解
Sep 17 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 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
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
介绍Python中的__future__模块
2015/04/27 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Python I/O与进程的详细讲解
2019/03/08 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
巴西在线鞋店:Shoestock
2017/10/28 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
元旦晚会邀请函
2014/01/27 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
售后服务承诺书范文
2014/03/26 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
MySQL 全文检索的使用示例
2021/06/07 MySQL