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中如果指變量是引用傳遞,則無論如何都在原數組上進行

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章