详解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 相关文章推荐
十天学会php之第一天
Oct 09 PHP
用PHP函数解决SQL injection
Dec 09 PHP
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
php合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
php在线解压ZIP文件的方法
Dec 30 PHP
php中 $$str 中 "$$" 的详解
Jul 06 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
PHP常量define和const的区别详解
May 18 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 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编写daemon process详解及实例代码
2016/09/30 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
JavaScript File分段上传
2016/03/10 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
js实现秒表计时器
2019/12/16 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python实现的防DDoS脚本
2011/02/08 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python如何使用unittest测试接口
2018/04/04 Python
Python函数中不定长参数的写法
2019/02/13 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
工厂总经理岗位职责
2014/02/07 职场文书
新手上路标语
2014/06/20 职场文书
爱晚亭导游词
2015/02/09 职场文书
企业法人代表证明书
2015/06/18 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
angular4实现带搜索的下拉框
2022/03/25 Javascript
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python