PHP數(shù)組

一、數(shù)組的概念

數(shù)組可以理解為有序的(鍵-值)對組成的數(shù)據(jù)值的集合;

如果我們把變量理解為單個值的容器,那么數(shù)組就是可以包含多個值得容器;

根據(jù)索引值的不同數(shù)組分為:索引數(shù)組和關(guān)聯(lián)數(shù)組;

二、數(shù)組的創(chuàng)建

1、使用array()函數(shù)

與其他語言的數(shù)組實(shí)現(xiàn)方式不同,php不需要在創(chuàng)建數(shù)組時(shí)指定其大??;

因?yàn)閜hp是一種松散類型的語言,所以甚至不需要在使用前先聲明;

索引可以是整形數(shù)字或者是字符串;

  • 索引數(shù)組:索引為整數(shù),如果沒有指定索引值則默認(rèn)為零,依次遞增;
    // 創(chuàng)建數(shù)組
    $arr1 = array("a", "b", "c", "d", "e", "f");     // 索引數(shù)組
  • 關(guān)聯(lián)數(shù)組:索引為字符串的數(shù)組
    // 關(guān)聯(lián)數(shù)組
    $arr2 = array(
        "one" => 1,
        "two" => 2,
        "three" => 3,
        "four" => 4,
        "five" => 5
    );

2、直接對數(shù)組變量賦值$arr[key] = value;

    // 索引數(shù)組
    $arr1 = array("a", "b", "c", "d", "e", "f");
    // 創(chuàng)建數(shù)組
    $arr1[0] = "j"; // a將被j覆蓋
    $arr1[] = "h";
網(wǎng)頁源代碼

如果方括號中沒有指定索引值,則取當(dāng)前最大整數(shù)索引值,新的鍵名將是該值加1。如果當(dāng)前還沒有整數(shù)索引,則鍵名將為0。如果指定的鍵名已有值了,該值將被覆蓋。

3、使用函數(shù)創(chuàng)建數(shù)組
range()建立一個包含指定范圍單元的數(shù)組

    // 創(chuàng)建數(shù)組
    $arr3 = range(-5, -15);
    print_r($arr3)
網(wǎng)頁源代碼

三、數(shù)組的基本操作

unset($arr[0])刪除數(shù)組元素

print_r($arr)打印數(shù)組

count($arr)取得數(shù)組大小

in_array(10, $arr)檢查數(shù)組中是否包含某個值

    // 索引數(shù)組
    $arr1 = array("a", "b", "c", "d", "e", "f");
    // 刪除數(shù)組元素
    unset($arr1[0]);

    // 打印數(shù)組
    print_r($arr1);
    echo "<br/>";
    // 取得數(shù)組長度
    echo count($arr1);
    echo "<br/>";
    // 檢查數(shù)組中是否包含某個值
    echo in_array("b", $arr1);
代碼執(zhí)行效果

四、遍歷數(shù)組

1、for 循環(huán)遍歷數(shù)組

    // 索引數(shù)組
    $arr1 = array("a", "b", "c", "d", "e", "f");

    for ($i=0; $i < count($arr1) ; $i++) {
        echo "<br/>".$arr1[$i];
    };
代碼執(zhí)行效果

2、foreach 循環(huán)遍歷數(shù)組

    // 關(guān)聯(lián)數(shù)組
    $arr2 = array(
        "one" => 1,
        "two" => 2,
        "three" => 3,
        "four" => 4,
        "five" => 5
    );

    // 遍歷數(shù)組
    foreach ($arr2 as $key => $value) {
        echo '$key ='.$key.'$value ='.$value."<br/>";
    }
代碼執(zhí)行效果

五、數(shù)組排序

按ASCII碼字符對照表進(jìn)行排序,包括字符串比較大小也是按此進(jìn)行比較。

1、sort()、rsort()對數(shù)組進(jìn)行升序和降序

2、ksort()、krsort()對數(shù)組按索引進(jìn)行升序和降序,并保持索引關(guān)系

    $arr2 = array(
        "one" => 1,
        "two" => 2,
        "three" => 3,
        "four" => 4,
        "five" => 5
    );
    print_r($arr2);

    // 降序
    krsort($arr2);
    print_r($arr2);

    // 升序
    sort($arr2);
    print_r($arr2);
代碼執(zhí)行效果

六、二維數(shù)組

數(shù)組元素的值也可以是數(shù)組;

遍歷二維數(shù)組;

    $arr4 = array(
        'fruit' => array('apple', 'orange'),
        'vegetables' => array('tomatoes', 'radish'),
        'flowers' => array('rose', 'lily')
    );

    // 遍歷二維數(shù)組

    foreach ($arr4 as $key => $value) {
        foreach ($value as $key1 => $value1) {
            echo $value1."<br/>";
        }
    }
代碼執(zhí)行效果

七、數(shù)組字符串轉(zhuǎn)換

1、explode()返回由字符串組成的數(shù)組,按某一字符進(jìn)行拆分。

2、implode() 將數(shù)組元素連接成字符串,按某一字符進(jìn)行拆分。

    // 數(shù)組與字符串的裝換
    $name = "ge bi lao wang";

    echo $name;

    // 字符串轉(zhuǎn)換為數(shù)組
    $arr = explode(' ', $name);
    print_r($arr);


    // 將數(shù)組裝換為字符串
    echo implode(' ', $arr);

代碼執(zhí)行效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、數(shù)組操作的基本函數(shù) 數(shù)組的鍵名和值 array_values($arr);獲得數(shù)組的值,返回含所有值的索引數(shù)組...
    zshanjun閱讀 846評論 0 2
  • 數(shù)組的概述 PHP 中的數(shù)組實(shí)際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方...
    dptms閱讀 1,757評論 0 4
  • 創(chuàng)建數(shù)組 索引數(shù)組索引為整數(shù),如果沒有指定索引值則默認(rèn)為零,依次遞增。 關(guān)聯(lián)數(shù)組數(shù)組的key為字符串。 多維數(shù)組 ...
    欒呱呱閱讀 1,794評論 3 34
  • 大家不要吐槽我寫的亂,其實(shí)是簡書的markdown編輯器有問題,看內(nèi)容感覺寫的很亂。我聯(lián)系過簡書的技術(shù)人員,連我理...
    Airmole閱讀 1,017評論 0 4
  • 終于熬過了一天可以等你下班 你知道嗎這樣的日子誰都不想吧 可大家都是這樣的生活節(jié)奏 加油年輕人
    不二人兒閱讀 155評論 0 0

友情鏈接更多精彩內(nèi)容