PHP数组

作者: XZ阳光小熊 | 来源:发表于2016-05-31 20:59 被阅读88次

    一、数组的概念

    数组可以理解为有序的(键-值)对组成的数据值的集合;

    如果我们把变量理解为单个值的容器,那么数组就是可以包含多个值得容器;

    根据索引值的不同数组分为:索引数组和关联数组;

    二、数组的创建

    1、使用array()函数

    与其他语言的数组实现方式不同,php不需要在创建数组时指定其大小;

    因为php是一种松散类型的语言,所以甚至不需要在使用前先声明;

    索引可以是整形数字或者是字符串;

    • 索引数组:索引为整数,如果没有指定索引值则默认为零,依次递增;
        // 创建数组
        $arr1 = array("a", "b", "c", "d", "e", "f");     // 索引数组
    
    • 关联数组:索引为字符串的数组
        // 关联数组
        $arr2 = array(
            "one" => 1,
            "two" => 2,
            "three" => 3,
            "four" => 4,
            "five" => 5
        );
    

    2、直接对数组变量赋值$arr[key] = value;

        // 索引数组
        $arr1 = array("a", "b", "c", "d", "e", "f");
        // 创建数组
        $arr1[0] = "j"; // a将被j覆盖
        $arr1[] = "h";
    
    网页源代码

    如果方括号中没有指定索引值,则取当前最大整数索引值,新的键名将是该值加1。如果当前还没有整数索引,则键名将为0。如果指定的键名已有值了,该值将被覆盖。

    3、使用函数创建数组
    range()建立一个包含指定范围单元的数组

        // 创建数组
        $arr3 = range(-5, -15);
        print_r($arr3)
    
    网页源代码

    三、数组的基本操作

    unset($arr[0])删除数组元素

    print_r($arr)打印数组

    count($arr)取得数组大小

    in_array(10, $arr)检查数组中是否包含某个值

        // 索引数组
        $arr1 = array("a", "b", "c", "d", "e", "f");
        // 删除数组元素
        unset($arr1[0]);
    
        // 打印数组
        print_r($arr1);
        echo "<br/>";
        // 取得数组长度
        echo count($arr1);
        echo "<br/>";
        // 检查数组中是否包含某个值
        echo in_array("b", $arr1);
    
    代码执行效果

    四、遍历数组

    1、for 循环遍历数组

        // 索引数组
        $arr1 = array("a", "b", "c", "d", "e", "f");
    
        for ($i=0; $i < count($arr1) ; $i++) {
            echo "<br/>".$arr1[$i];
        };
    
    代码执行效果

    2、foreach 循环遍历数组

        // 关联数组
        $arr2 = array(
            "one" => 1,
            "two" => 2,
            "three" => 3,
            "four" => 4,
            "five" => 5
        );
    
        // 遍历数组
        foreach ($arr2 as $key => $value) {
            echo '$key ='.$key.'$value ='.$value."<br/>";
        }
    
    代码执行效果

    五、数组排序

    按ASCII码字符对照表进行排序,包括字符串比较大小也是按此进行比较。

    1、sort()、rsort()对数组进行升序和降序

    2、ksort()、krsort()对数组按索引进行升序和降序,并保持索引关系

        $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);
    
    代码执行效果

    六、二维数组

    数组元素的值也可以是数组;

    遍历二维数组;

        $arr4 = array(
            'fruit' => array('apple', 'orange'),
            'vegetables' => array('tomatoes', 'radish'),
            'flowers' => array('rose', 'lily')
        );
    
        // 遍历二维数组
    
        foreach ($arr4 as $key => $value) {
            foreach ($value as $key1 => $value1) {
                echo $value1."<br/>";
            }
        }
    
    代码执行效果

    七、数组字符串转换

    1、explode()返回由字符串组成的数组,按某一字符进行拆分。

    2、implode() 将数组元素连接成字符串,按某一字符进行拆分。

        // 数组与字符串的装换
        $name = "ge bi lao wang";
    
        echo $name;
    
        // 字符串转换为数组
        $arr = explode(' ', $name);
        print_r($arr);
    
    
        // 将数组装换为字符串
        echo implode(' ', $arr);
    
    
    代码执行效果

    相关文章

      网友评论

          本文标题:PHP数组

          本文链接:https://www.haomeiwen.com/subject/jpzcdttx.html