PHP数组声明的特性

数组的定义

•直接赋值的方式声明数组 

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

•PHP4的新型声明方式[] 

•多维数组的声明

•数组常用的赋值方式:

   由于 PHP 是属于弱类型数据,因此源代码中的数组并不需要经过特别的声明操作,直接将一组数值指定给某一数组元素即可。一般情况下数组的赋值有两种方式:

    –直接赋值方式 如:

    •$a[0]=‘spam@126.com’;  

    •$a[1]=‘abuse@sohu.com’;

    –使用array函数 如:

    •$a=array(“spam@126.com “,”abuse@sohu.com”);

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

直接赋值的方式声明数组

•直接赋值格式:

  $数组变量名[索引值]=资料内容

  其中索引值(下标)可以是一个字符串或一个整数。等价于整数(不以0开头)的字符串值被当作整数对待。因此,数组$array[3]与$array[‘3’]是引用相同的元素。但是$array[‘03’]引用的另外不同的元素。

•一维数组

  数组中索引值(下标)只有一个的数组称为一维数组。在数组中这是最简单的,也是最常用的了。

<?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

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

•格式:

    array( [key =>] value , ... )

   // key 可以是 integer 或者 string

   // value 可以是任何值

•key 可以是 integer 或者 string。value 可以是任意类型。

应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。

此外 key 会有如下的强制转换:

l    包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。

l    浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。 

l    布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。 

l    Null 会被转换为空字符串,即键名 null 实际会被储存为 ""。

l    数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。 

l如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。 

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

•实例:

<?php
        $a=array(1,2,3,4,5,6);
        $b=array("one", "two", "three");
        $c=array(0=>"aaa",1=>"bbb",2=>"ccc");
        $d=array("aaa",6=>"bbb","ccc");
        $e=array("name"=>"zhang", "age"=>20);
    ?>

自 5.4 起可以使用短数组定义语法,用 [] 替代 array()。

<?php
  $array
= array(
 
    "foo" => "bar",
 
    "bar" => "foo",
  );

// 自 PHP 5.4 起
  $array
= [
      "foo" => "bar",
      "bar" => "foo",
  ];
?>

自 PHP 5.4 起可以用数组间接引用函数或方法调用的结果。之前只能通过一个临时变量。

<?php
function getArray() {
    return array(1, 2, 3);
}

// on PHP 5.4
$secondElement = getArray()[1];

// previously
$tmp = getArray();
$secondElement = $tmp[1];

unset() 函数允许删除数组中的某个键。但要注意数组将不会重建索引。如果需要删除后重建索引,可以用 array_values() 函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李传海

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值