php中数组之数据类型详解
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-27 20:36:36 浏览: 评论:0
在php中数组可以存放值可以是任意的 PHP 类型,如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一,这就是php数组
有三种数组类型:
数值数组
带有数字 ID 键的数组
关联数组
数组中的每个 ID 键关联一个值
多维数组
包含一个或多个数组的数组
PHP 中的 数组 实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性.数组元素的值也可以是另一个数组.树形结构和多维数组也是允许的.
可以用 array() 语言结构来新建一个 array.它接受任意数量用逗号分隔的 键(key) => 值(value) 对.
key 可以是 integer 或者 string.如果key是一个 integer 的标准表示,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08").key 中的浮点数被取整为 integer.在 PHP 中索引数组与关联数组是相同的,它们都可以同时包含整型和字符串的下标.
值可以是任意的 PHP 类型.
如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一.如果指定的键名已经有了值,则该值会被覆盖.
使用 TRUE 作为键名将使 integer 1 成为键名.使用 FALSE 作为键名将使 integer 0 成为键名.使用 NULL 作为键名将等同于使用空字符串.使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值,这和用空的方括号不一样.
不能用数组和对象作为键(key).这样做会导致一个警告:Illegal offset type.
用方括号的语法新建/修改
如果 $arr 还不存在,将会新建一个.这也是一种定义数组的替换方法.要改变一个值,只要给它赋一个新值.如果要删除一个键名/值对,要对它用 unset().
Note:如果给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值 + 1.如果当前还没有整数索引,则键名将为 0.如果指定的键名已经有值了,该值将被覆盖.
注意这里所使用的最大整数键名不一定当前就在数组中.它只要在上次数组重新生成索引后曾经存在过就行了.
应该始终在用字符串表示的数组索引上加上引号.例如用 $foo['bar'] 而不是 $foo[bar].但是为什么 $foo[bar] 错了呢?
原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字.它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串.例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之.
在这个例子中,会自动分配 ID 键:
实例代码如下:
- $names = array("Peter","Quagmire","Joe");
在这个例子中,我们人工分配的 ID 键:
实例代码如下:
- $names[0] = "Peter";
- $names[1] = "Quagmire";
- $names[2] = "Joe";
可以在脚本中使用这些 ID 键:
实例代码如下:
- <?php
- $names[0] = "Peter";
- $names[1] = "Quagmire";
- $names[2] = "Joe";
- echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
- ?>
以上代码的输出:
Quagmire and Joe are Peter's neighbors
多维数组
在多维数组中,主数组中的每个元素也是一个数组.在子数组中的每个元素也可以是数组,以此类推.
在本例中,我们创建了一个带有自动分配的 ID 键的多维数组:
实例代码如下:
- $families = array
- (
- "Griffin"=>array
- (
- "Peter",
- "Lois",
- "Megan"
- ),
- "Quagmire"=>array
- (
- "Glenn"
- ),
- "Brown"=>array
- (
- "Cleveland",
- "Loretta",
- "Junior"
- )
- );
总结
php 中的数组是我们开发中经常会用到的,像想同是操作多个数据量可用数组key来保存不同的值等操作,数组是最方法最快速的解决办法.
Tags: 数组 数据类型 详解
相关文章
- ·php in_array 语法(2013-11-12)
- ·php对特殊语句查询结果进行数组排序(2013-11-12)
- ·PHP中数组定义的几种方法(2013-11-13)
- ·php学习笔记 [预定义数组(超全局数组)](2013-11-13)
- ·php session 预定义数组(2013-11-13)
- ·PHP 数组教程 定义数组(2013-11-13)
- ·我要如何在HTML中建立<form>数组?(2013-11-27)
- ·php 读取多维数组方法(2013-11-28)
- ·删除数组与二维数组值的php代码(2013-11-29)
- ·php 数组之删除空数组程序(2013-11-30)
- ·php删除数组中的空值或指定值操作(2013-11-30)
- ·PHP数组传递给JavaScript以及json_encode的gbk中文乱码(2013-12-02)
- ·php对数组元素去重复值(2013-12-03)
- ·php数组提示Notice: Undefined offset解决办法(2013-12-04)
- ·解决php array数组生成xml文件汉字编码问题(2013-12-07)
- ·php中向数组中插入一元素程序代码(2014-01-03)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)