一步一步学习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 db类库进行数据库操作
Mar 19 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php生成图片缩略图的方法
Apr 07 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
PHP获取文件扩展名的方法实例总结
Jun 10 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 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
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
一个简单计数器的源代码
2006/10/09 PHP
我的群发邮件程序
2006/10/09 PHP
php页面防重复提交方法总结
2013/11/25 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
php单例模式示例分享
2015/02/12 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python中查看变量内存地址的方法
2015/05/05 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
为什么相对PHP黑python的更少
2020/06/21 Python
财务管理专业推荐信
2013/11/19 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
开票证明
2015/06/23 职场文书
Java中API的使用方法详情
2022/04/06 Java/Android