PHP初学之数组

来源:互联网 发布:mac还原hosts文件 编辑:程序博客网 时间:2024/05/19 02:28

PHP中没有链表,也就是没有list,只有array,也就是数组

 

一、定义;以若干键值对的形式保存数据的一种方法,

 

二、创建;

 

        1、直接存多个键值对
           array $stu = array(  key =>  value  , ...)
key;键,可以是整形或string类型,数组里的key不能重复
            value  ;值,可以是任意类型的值
 
        2、 多次添加单个键值对
            $stu[  key ]=  value;
            $stu[‘说’]=’忽悠’;
            $stu[‘学’]=’作弊’;
            $stu[‘逗’]=’贫嘴’;
            $stu[‘唱’]=’假唱’;
 
 
        3、懒人专用
 
            $stu = array( value1 , value2, value3 ...)
            或
            $stu[]=’忽悠’;
            $stu[]=’作弊’;
            $stu[]=’贫嘴’;
            $stu[]=’假唱’;
 

 

                   不写键,默认key 为从0开始,依次递增,来自动分配,

三、增删改查;都是通过键来进行操作,

 

$arr = array ( ‘产品狗‘,’设计猫‘,’age‘ = 28,)

1、 增

 

$arr[]=’ key’=>’value’//也可以不写key,

 

       2、删

$arr[key]//指定key直接删

 

键的增长不受删除操作的影响.就是说,把数组里的一个键值对删了,但是这个key没有消失,只是值没了

 

       3、改

        $arr[key]// 指定key直接赋值覆盖

 

       4、查

 

        $arr[key]// 指定key直接找

 

 

 

四、二维数组;就是数组里嵌套了另一个数组

 

$stu1 = array( value1 , value2, value3 ...)

$stu2 = array($stu1, value2, value3 ...)

$stu2,就是一个二维数组

 

如何在2里找到1里的值$stu2[key1][key2], key 1代表$stu1在stu2里的key,key 2代表要找的值在stu1里的key

 

五、分类;PHP中键可以是字符串也可以是数组

 

1、 索引数组;键是纯数字

2、 关联数组;键不是纯数字。。。。

 

六、循环

 

1、 for循环,适合键为数字且有规律的数组

 

$arr=array('','','','');

 

for ($i = 0; $i < count($arr);$i++) {

 echo $arr[$i];

}

或效率更高的

for ($i = 0,$len= count($arr);$i <$len; $i++) {

 echo $arr[$i];

}

 

2、 forerch

 

$arr=array('','','','');

              foreach ($arr as $k=>$v) {

         echo $k,$v;

}

 

       as;属于;把arr里的数据分配给k和v,k代表key,v代表value

       或

foreach ($arras $v) {

         echo $v;

}

       简写,不要key,默认要value

      

七、游标;在数组内部,有一个指针,指针指着某一个单元,没循环一个单元,指针往尾部移动一位,在没有对数组进行操作的时候,为0.

1、

current — 返回数组中的当前单元

 

mixed current ( array &$array )

 

       end()- 将数组的内部指针指向最后一个单元

key()- 从关联数组中取得键名

each()- 返回数组中当前的键/值对并将数组指针向前移动一步,返回数组

$arr=array(1,2,3,0,5);

 

for ($i = 0; $i <=count($arr); $i++) {

    echo $arr[$i];

}

       这样会报Notice: Undefinedoffset:因为到0的时候,0默认为false,退出

$arr=array(1,2,3,0,5);

 

while ($arr2=each($arr)){

 

echo $arr2[0],'`````',$arr2[1]; 

}

其中;0为arr的键.1为arr的值

prev()- 将数组的内部指针倒回一位

reset()- 将数组的内部指针指向第一个单元,归零

next()- 将数组中的内部指针向前移动一位

 

在foreach开始时,会自动把游标指针归零

 

八、list;这不是真正的函数,而是语言结构,意为,她里面没有数据,只是一个方法、工具

 

1、 简单快捷的把默认下标数组里的值赋给变量

 

$arr=array('','','','');

 

list($chun,$xia,$qiu,$dong)=$arr;

echo $chun ,$xia,$qiu,$dong;

 

2、 把有下标数组里的值赋给变量

 

$arr=array(1=>'',2=>'',3=>'');

 

list($chun ,$xia,$qiu)=$arr;

echo $chun ,$xia,$qiu;//打印null,春,夏

(1)、先对应

在list中,按,逗号隔开的顺序,从左到右,分别对应右侧的数组(如$arr)

$arr[0], $arr[1], $arr[2]…$arr[n].

如果要对应的$arr[x]不存在,则当成null处理

$chun  === $arr[0]

$xia   === $arr[1]

$qiu   === $arr[2]

(2)、再赋值

赋值的时候顺序是从右往左依次赋值,就是这个数组是先创建下标大的数据

$qiu   === $arr[2] ===夏

$xia   === $arr[1] ===春

$chun  === $arr[0] ===null

 

 

 

0 0