一步一步学习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基础知识:控制结构
Dec 13 PHP
php防攻击代码升级版
Dec 29 PHP
解析PHP自带的进位制之间的转换函数
Jun 08 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php给一组指定关键词添加span标签的方法
Mar 31 PHP
php反射类ReflectionClass用法分析
May 12 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
Feb 18 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
php微信分享到朋友圈、QQ、朋友、微博
Feb 18 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
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
如何在PHP中使用数组
2020/06/09 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python元组知识点总结
2019/02/18 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
python对execl 处理操作代码
2020/06/22 Python
详解Python IO编程
2020/07/24 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
台湾最大网路书店:博客来
2018/03/18 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
单位作风建设自查报告
2014/10/23 职场文书
先进个人推荐材料
2014/12/29 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python