php数组

数组基础

Php中,数组的下标可以是整数,也可以是字符串

Php中,数组的元素顺序不是由下标决定的,而是由其“加入”的顺序决定。

定义:

    array(1,5,1.1,”abc”,true,false);  //可以存储任何数据,此时为“默认下标”

array(2=>1,5 =>5,7 =>1.1, 3=>”abc”, 0=>true); //下标可以任意设定(无需顺序,无需连续)

l  可以加下标,也可以不加(默认下标),默认下标规则:前面已经用过的最大数字下标+1。

l  可以是数字下标与字符串下标的混合形式,同样遵循默认下标规则

l  负数下标不算在整数下标中,只当作字符下标

l  浮点数下标自动转换为整数,且直接抹掉小数

l  纯数字字符串下标,当作数字看待

l  布尔值当下标,则true为1,false为0

l  如果下标跟前面的重复,则单纯覆盖前面同名下标的值

其他形式:

$arr1[ ]=1.1;//直接在变量后面使用[],就成为数组,并依次赋值,与array的语法结构一致

取值:通过下标

赋值(同定义)

数组分类

从键值关系:

关联数组:通常指下标为字符串,并且该字符串大体可以表示出数据的含义的数组

例:$person=array(

    “name”=>”小明”;

    “age”=>15;

)

索引数组:指一个数组的下标是从0开始的连续的数字下标—跟js数组一样

从数组层次来分:

一维数组

二维数组

多维数组

一般语法形式:$v1=数组名[下标][下标]…

数组遍历

遍历基本语法

foreach($arr  as  [$key=>]$value){

    //对$key(元素下标)和$value(元素值)进行操作

    //此循环结构从数组的第一项一直遍历循环到最后一项,然后结束

}


数组指针和遍历原理

每一个数组,其内部都有一个指针,该指针指向数组某元素时,取到该元素

foreach遍历过程中,依赖指针进行。

其他函数也依赖于该指针:

$v1=current($arr1);//取得$arr1中当前指针所指向的元素的值,如果没有指向元素,则为false

$v1=key($arr1);//取得$arr1中当前指针所指向的元素的下标,如果没有指向元素,则为false

$v1=next($arr1);//将指针移向“下一个元素”,然后取得该下一个元素的值

$v1=prev($arr1);//将指针移向“上一个元素”,然后取得该上一个元素的值

$v1=reset($arr1);//将指针移向“第一个元素”,然后取得该元素的值(数组初始化)

$v1=end($arr1);//将指针移向“最后一个元素”,然后取得该元素的值

$v1=each($arr1);//取得当前元素的下标和值,然后移动到下一个位置


For+next+reset遍历数组

reset($arr1);

$len=count($arr1);

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

  $key=key($arr1);

$value=current($arr1);

//对变量进行操作

next($arr1);

}


While+each+list遍历数组

 

Each()函数:取得当前元素的下标和值,再放入到一个新的数组中,然后移动到下一个位置

  该新的数组,有4个元素,存储了下标和值各两个:

 Array{

    1=>(取出来的值)

     ‘value’=> (取出来的值)

    0=> (取出来的下标—键名)

     ‘key’=> (取出来的下标—键名)

};

List()函数:

使用形式

list($v1,$v2,$v3,$v4…)=数组$arr1;

作用:依次取得数组中下标为0,1,2,3,。。。的元素的值,并一次性放入多个变量中(一一对应)

相当于如下语句:

   $v1=$arr1[0];

   $v2=$arr1[1];

   $v3=$arr1[2];

注意:只能实现从0开始的连续数字下标的元素的取值(数组元素的顺序不要求)

然后使用两个函数与while实现数组遍历:

形式:

reset($arr1);

while(list($key,$value)=each($arr1))//从数组中依次取元素,当each到数组最后时,返回//false,循环结束

{

   //对元素进行操作

}

Foreach遍历细节探讨

1.可以有break和continue

2.默认是值传递(值变量)

3.可设定为引用传递(值变量),键变量不可设为引用传递

  Foreach($arr  as  $key=>&$value){…}

4.Foreach默认是原数组上进行遍历,但如果在遍历过程中对数组进行了某种修改或某种指针性操作,则会在复制的数组上继续遍历循环。

5.Foreach中如果指变量是引用传递,则无论如何都在原数组上进行

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值