PHP數組介紹

數組基礎:

    php中,數組的下標可以整數,也可以是字符串

    php中,數組的元素順序不是由下標決定,而是由其“加入”的順序決定

 

定義:

    $arr1 = array(元素1,元素2,。。。。。。);

    array(1,1.1,5,'abc',true,false); //可以存儲任何數據,此時為默認下標

    array(2=>1,4=>1.1,3=>5,7=>'abc',0=>true); //下標可任意設定(無需順序,無需連續)

    array(2=>1,1.1,1=>5,'abc',0=>true); //可以加下標,也可以不加,不加下標則為默認下標

                                        //默認下標規則:前面已經用過的最大數字下標+1

                                        //這個數字的下標分別是:2,3,1,4,0

    array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true); //混合下標,同樣遵循默認下標規則

    array(-2=>1,'dd'=>5,1.1,'abc',true); //負數下標不算在整數下標中,而隻當作字符下標

                                         //則這個數組最後三項的下標為:0,1,2

    array(2.7=>1,'dd'=>5,1=>1.1,'abc',true); //浮點數下標會自動轉換為整數,且直接去掉小數部分

    array("2.7"=>1,'dd'=>5,"11"=>1.1,'abc',true); //純數字字符串下標,當作數字看待

    array(2=>1,'dd'=>5,true=>1.1,'abc',false=>true); //佈爾值當作下標,則true為1,false為0

    array(2=>1,'dd'=>5,2=>1.1,'abc',true); //如果下標跟前面的重復,則單純覆蓋前面同名下標的值

 

    其他形式:

        $arr1[] = 1;

        $arr1[] = 5;

        $arr1[] = 1.1;

        ……  //直接在變量後面使用[],就成為數組,並依次賦值

        $arr2['aa'] = 1;

        $arr2['bb'] = 5;

        $arr2[5] = 1.1;

        ……  //這種形式寫的下標,其實跟使用array語法結構幾乎一樣

 

數組的分類:

    從鍵值關系分為:

        關聯數組:通常是指下標為字符串,並且該字符串大體可以表達出數據的含義的數組

            例:$person = array("name" => "poe", "age" => 18, "edu" => "大學畢業");

        索引數組:通常是指一個數組的下標嚴格的從0開始的連續的數字下標 — 跟js數組類似

    從數組層次為分:

        一維數組:就是一個數組中的每一個元素值,都是一個普通值(非數組值)

             例:$person = array("name" => "poe", "age" => 18, "edu" => "大學畢業");

        二維數組:一個數組中的每一項,又是一個一維數組。

            $person = array(

                            "name" => array("xiaohua","xiaofang), 

                            "age" => array(18,22), 

                            "edu" => array("大學畢業","小學",)

                            );

        多維數組:依次類推。。。

                多維數組的一般語法形式:

                  $v1 = 數組名[下標][下標][……]

 

數組的遍歷:

    遍歷基本語法:

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

            //這裡就可以對$key and $value進行所有可能的操作 — 因為他們就是一個變量

            //$key代表每次取得元素的下標,可能是數字,也可以是字符串

            //$value代表每次取得元素的值,可能是各種類型

            //此循環結構會從數組的第一項一直遍歷到最後一項,然後結束

        }

 

數組指針和遍歷原理:

    每個數組,其內部都有一個“指針”,該指針決定瞭該數組當前取值的時候取到的元素

    foreach遍歷過程中,都是依賴於該指針而進行的。

    舉例:$arr1 = array(2=>1,'dd'=>5,1=>1.1,'abc',0=>true);

    wKioL1ZNx1Sxflt6AAAnrLtN90Q498.jpg

指針除瞭負責foreach循環的位置設定之外,還有其他一些函數也依賴於指針:

1:$v1 = current($arr1);    //取得$arr1中當前指針指向的元素的值,如果沒有指向元素,則為false

2:$v1 = key($arr1);        //取得$arr1中當前指針指向的元素的下標,。。。。。。。。。。。。。

3:$v1 = next($arr1);       //將指針移向“下一個元素”,然後取得該下一個元素的值

4:$v1 = prev($arr1);       //將指針移向“上一個元素”,然後取得該上一個元素的值

5:$v1 = reset($arr1);      //將指針移向“第一個元素”,並取得該元素的值

6:$v1 = end($arr1);        //將指針移向“最後一個元素”,並取得該元素的值

7:$v1 = each($arr1);       //取得當前元素的下標和值,然後移動指針到下一個位置

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *