澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

php中数组之数据类型详解,数据类型之数组

PHP 中的 数组 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。数组元素的值也可以是另一个数组。树形结构和多维数组也是允许的。

 有三种数组类型:

6.1.2 PHP数组的基本概念及分类

可以用 array() 语言结构来新建一个 array。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。

数值数组
带有数字 ID 键的数组
关联数组
数组中的每个 ID 键关联一个值
多维数组
包含一个或多个数组的数组

数组的声明

key 可以是 integer 或者 string。如果key是一个 integer 的标准表示,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08")。key 中的浮点数被取整为 integer。在 PHP 中索引数组与关联数组是相同的,它们都可以同时包含整型和字符串的下标。

PHP 中的 数组 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。数组元素的值也可以是另一个数组。树形结构和多维数组也是允许的。

数组的定义

值可以是任意的 PHP 类型。

可以用 array() 语言结构来新建一个 array。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。

•直接赋值的方式声明数组
•使用array( )语言结构新建数组
•PHP4的新型声明方式[]
•多维数组的声明

如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果指定的键名已经有了值,则该值会被覆盖。

key 可以是 integer 或者 string。如果key是一个 integer 的标准表示,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08")。key 中的浮点数被取整为 integer。在 PHP 中索引数组与关联数组是相同的,它们都可以同时包含整型和字符串的下标。

•数组常用的赋值方式:
由于 PHP 是属于弱类型数据,因此源代码中的数组并不需要经过特别的声明操作,直接将一组数值指定给某一数组元素即可。一般情况下数组的赋值有两种方式:
–直接赋值方式 如:
•$a[0]=‘spam@126.com’;
•$a[1]=‘abuse@sohu.com’;
–使用array函数如:
•$a=array(“spam@126.com “,”abuse@sohu.com”);

使用 TRUE 作为键名将使 integer 1 成为键名。使用 FALSE 作为键名将使 integer 0 成为键名。使用 NULL 作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值,这和用空的方括号不一样。

值可以是任意的 PHP 类型。

方括号和花括号可以互换使用来访问数组单元(例如$array[42] 和$array{42} 在上例中效果相同)

不能用数组和对象作为键(key)。这样做会导致一个警告:Illegal offset type

如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果指定的键名已经有了值,则该值会被覆盖。

直接赋值的方式声明数组

用方括号的语法新建/修改

如果 $arr 还不存在,将会新建一个。这也是一种定义数组的替换方法。要改变一个值,只要给它赋一个新值。如果要删除一个键名/值对,要对它用 unset()。

Note:如果给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值

  • 1。如果当前还没有整数索引,则键名将为 0。如果指定的键名已经有值了,该值将被覆盖。

注意这里所使用的最大整数键名不一定当前就在数组中。它只要在上次数组重新生成索引后曾经存在过就行了。

应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?

原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。

使用 TRUE 作为键名将使 integer 1 成为键名。使用 FALSE 作为键名将使 integer 0 成为键名。使用 NULL 作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值,这和用空的方括号不一样。

•直接赋值格式:
$数组变量名[索引值]=资料内容
其中索引值(下标)可以是一个字符串或一个整数。等价于整数(不以0开头)的字符串值被当作整数对待。因此,数组$array[3]与$array[‘3’]是引用相同的元素。但是$array[‘03’]引用的另外不同的元素。
•一维数组
数组中索引值(下标)只有一个的数组称为一维数组。在数组中这是最简单的,也是最常用的了。

不能用数组和对象作为键(key)。这样做会导致一个警告:Illegal offset type。

<?php
    $contact1[0] = 1;
    $contact1[1] = "高某";
    $contact1[2] = "A公司";
    $contact1[3] = "北京市";
    $contact1[4] = "(010)98765432";
    $contact1[5] = "gao@brophp.com";

    $contact2["ID"] = 2;
    $contact2["姓名"] = "峰某";
    $contact2["公司"] = "B公司";
    $contact2["地址"] = "上海市";
    $contact2["电话"] = "(021)12345678";
    $contact2["EMAIL"] = "feng@lampbrother.com";

    print_r( $contact1 );      //输出数组$contact1中所有元素的下标和值
    var_dump( $contact1 ); //输出数组$contact1中所有元素的下标和值同时输出每个元素的类型
     print_r( $contact2 );      //输出数组$contact2中所有元素的下标和值
    var_dump( $contact2 ); //输出数组$contact2中所有元素的下标和值同时输出每个元素的类型

<?php
    $contact[ ] = 1                         //索引下标为 0
    $contact[ ] = "高某";                 //索引下标为 1
    $contact[ ] = "A公司";                    //索引下标为 2
    $contact[ ] = "北京市";                  //索引下标为 3

    $contact[0] = 1                     //声明数组使用的下标为整数0
    $contact["ID"] = 1                  //声明数组使用的下标为字符串
    $contact[1] = "高某";             //使用下标为整数1向数组中添加元素
    $contact["姓名"] = "峰某";          //使用下标为字符串“姓名”向数组中添加元素
    $contact[2] = "A公司";            //使用下标为整数2向数组中添加元素
    $contact["公司"] = "A公司";         //使用下标为字符串“公司”向数组中添加元素

    $contact[ ] = 1;                        //默认的下标为 0
    $contact[14] = "高某";                //指定非连续的下标为 14
    $contact[ ] = "A公司";                    //将紧跟最高的下标值增1后的下标为 15
    $contact[ ] = "北京市";                  //下标再次增1为 16
    $contact[14] = "(010)98765432";  //前面已声明过下标为14的元素,重新为下标14元素赋值
    $contact[ ] = "gao@brophp.com";         //还会紧跟最高的下标值增1后的下标为 17

用方括号的语法新建/修改
如果 $arr 还不存在,将会新建一个。这也是一种定义数组的替换方法。要改变一个值,只要给它赋一个新值。如果要删除一个键名/值对,要对它用 unset()。

使用array( )语言结构新建数组

Note:如果给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值

格式:
array( [key =>] value , ... )
// key 可以是 integer 或者 string
// value 可以是任何值
key 可以是 integer 或者 string。value 可以是任意类型。

本文由澳门皇冠金沙网站发布于编辑程序,转载请注明出处:php中数组之数据类型详解,数据类型之数组