详解PHP对数组的定义以及数组的创建方法


Posted in PHP onNovember 27, 2015

传统上把数组(array)定义为一组有某种共同特性的元素,这里的共同特性包括相似性(车模、棒球队、水果类型等)和类型(例如所有元素都是字符串或整数)等,每个元素由一个特殊的标识符来区分,这称为健(key)。请注意,上面这句话中的传统上一词,因为现在可以摒弃这种定义,数组结构中可以包括完全无关的元素。PHP则更进一步,数组中的元素甚至可以不属于同一种类型。例如,一个数组可能包含州名、邮政编码、考试成绩或扑克牌等元素。

每个实体包含两个项:前面提到的健(key)和值(value)。可以通过查询键来获取其相应的值。这些键可以是数值(numerical) 健或关联(associative)健。数值键与值没有真正的联系,它们只是值在数组中的位置。例如,一个数组中包含按字母顺序排列的水果名,键0表示apple,键2表示pear。使用PHP语法,该数组如下:

$fruits = array(
 "0"=>"apple",
 "1"=>"banana"
 "2"=>"pear"
 );

使用数组索引,可以如下引用第一个元素(apple):

$fruits[0]

PHP的数值索引组以位置0起始,而不是1。

与此不同的是,关联键与值有一定关系,而不是值在数组中的位置。使用数值索引值不可行时,以关联的方式来映射数组会特别方便。例如,你可能希望创建一个将水果缩写映射到水果名的数组,如AP/apple、BA/banana和PE/Pear。使用PHP语法,该数组如下:

$fruits = array(
 "AP"=>"apple",
 "BA"=>"banana",
 "PE"=>"pear"
 );

可以如下引用apple:

$fruits["AP"];

还可以创建包含数组的数组,这称为多维数组(multidimensional arrays)。例如,可以使用一个多维数组存储水果的信息。使用PHP语法,该数组如下:

$fruits = array(
  "apple"=>array(
 "name"=>"apple",
 "color"=>"red"
 ),
 "banana"=>array(
 "name"=>"banana",
 "color"=>"yellow"
 )
);

然后可以如下引用apple的color:

$states["apple"]["color"];

这将返回以下值:

red

你自然会想知道遍历数组的方法。PHP提供了很多遍历数组的方法。无论使用哪一种方法,要记住,它们都依赖于一种称为数组指针(array pointer)的特性。数组指针就如同书签,告诉你正在检查的数组位置。你并不是直接操作数组指针,而是使用内置的语言特性或函数来遍历数组。但是,理解这个基本概念很有用。

数组是PHP最重要的数据结构之一,数组在PHP的用处很广泛。与其他很多语言的数组实现方式不同,PHP不需要在创建数组时指定其大小。事实上,因为PHP是一种松散类型的语言,所以甚至不需要在使用数组前先行声明,尽管没有限制,PHP仍提供了正式和非正式的数组声明方法。两个方法各有优点,都值得学习。下面将分别讨论这两种方法,首先来介绍非正式的方法。

要引用PHP数组中的各个元素,可以用一对中括号来指示。因为数组没有大小限制,所以只需建立引用就可以创建数组,例如:

$fruits[0] = "apple";

然后,可以如下显示数组$fruits的第一个元素:

echo $fruits[0] = "apple";

接下来,可以为数组索引映射新值,从而添加其他的值,如下:

$fruits[1] = "banana";
$fruits[2] = "pear";

有趣的是,如果认为索引值是数组索引而且是递增的,还可以在创建时省略索引值:

$fruits[] = "apple";
$fruits[] = "banana";
$fruits[] = "pear";

用这种方式创建关联数组也同样很简单,只不过必须一直使用键。下面的实例创建了一个数组,它将水果映射到其颜色:

$fruits["apple"] = "red";
$fruits["banana"] = "yellow";
$fruits["pear"] = "yellow";

使用array()创建数组

array()函数接受0个或多个元素作为输入,返回一个包含这些收入元素的数组。其形式如下:

array array([item1,[,item2…[,itemN]]])

下面是一个使用array()创建索引数组的例子:

$fruits = array("apple","banana","pear");

还可以使用array()创建一个关联数组,如下:

$fruits = array(
 "AP"=>"apple",
 "BA"=>"banana",
 "PE"=>"pear"
 );
PHP 相关文章推荐
将数字格式的计算结果转为汉字格式
Oct 09 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
PHP处理会话函数大总结
Aug 05 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP微信PC二维码登陆的实现思路
Jul 13 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
PHP中->和=>的含义及使用示例解析
Aug 06 PHP
php慢查询日志和错误日志使用详解
Feb 27 PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 #PHP
PHP编程中的__clone()方法使用详解
Nov 27 #PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 #PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 #PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 #PHP
php实现遍历多维数组的方法
Nov 25 #PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 #PHP
You might like
PHP MSSQL 分页实例
2016/04/13 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
python制作图片缩略图
2019/04/30 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
铭立家具面试题
2012/12/06 面试题
个人找工作自荐信格式
2013/09/21 职场文书
迎新晚会邀请函
2014/02/01 职场文书
2014和解协议书范文
2014/09/15 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
千手观音观后感
2015/06/03 职场文书
回复函范文
2015/07/14 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS