zoukankan      html  css  js  c++  java
  • PHP数组(一)

    一、数组的基本定义:

      1、三种定义方式:

    <?php
        //数组的第一种定义方式
        $array1 = array('Aka','湖南湘潭',20,'IT');
        var_dump($array1);
        echo '<br>array1[0]=',$array1[0];
        //第二种数组的定义方式
        echo '<hr/>';
        $array2 = ['Aka','湖南衡阳',20,'IT',"12345678@qq.com"];
        var_dump($array2);
        //第三种定义方式
        echo '<hr/>';
        $array3[] = 10;
        $array3[] = 10;
        $array3[] = 10;
        $array3[0] = 12;
        $array3['key'] = 'value';
        var_dump($array3);
        echo '<br>',$array3['key'];

      运行结果:

        

       2.三种基本类型

        索引数组:数组下标都为整数;

        关联数组:数组下标都为字符串;

        混合数组:数组下标为整数和字符串。

      3.PHP数组的特点:

        a.数字下标的自增长特性:从0开始自动增长,除非人为的去指定某个下标的值,否则在后面的添加

      元素过程中从最大位置元素的后面开始添加;

        b.特殊值下标自动转换:

        示例如下:

        echo '<hr/>';
        $array4[false] = [false];
        $array4[true] = [true];
        $array4[null] = [null];
        $array4[NULL] = [NULL];
        var_dump($array4);
        echo '<br>';
        //print_r($array4);
        

      输出数组的下标值被自动转换  

      

        c.PHP数组中的元素没有类型限制;

        d.PHP数组中的元素没有长度限制;

        e.PHP中的数组是很大的数据,存储位置是在堆区,堆区为当前的数组分配一块儿连续的内存。

    二、多维数组

      1.二维数组:

    <?php
        //定义二维数组
        echo '这是二维数组<br>';
        $array1 = array(
            array('Aka','湖南衡阳',20,'IT',"12345678@qq.com"),
            array('Wunder','LCS',20,'IT',"Wunder@qq.com"),
            array('Caps','LCS',22,'IT',"Caps@qq.com"),
            array('Perkzs','LEC',20,'IT',"Perkzs@qq.com")    
        );
        echo '<pre>';
        print_r($array1);

      运行结果:

      

      2.三维数组

        //定义三维数组
        echo '<hr/>';
        echo '这是三维数组<br>';
        $array2 = array(
            array(array('Wunder','LCS',20,'IT',"Wunder@qq.com"),
            array('Caps','LCS',22,'IT',"Caps@qq.com"),
            array('Perkzs','LEC',20,'IT',"Perkzs@qq.com"),
            array('Jangos','LEC',20,'IT',"Jangos@qq.com")
            ),    
            array(array('GinGon','LPL',20,'IT',"GinGon@qq.com"),
            array('Tian','LPL',22,'IT',"Tian@qq.com"),
            array('Doinb','LPL',20,'IT',"Doinb@qq.com"),
            array('LWX','LPL',20,'IT',"LWX@qq.com")
            )        
        );
        echo '<pre>';
        print_r($array2);
        

      运行结果:

      

       说明:在定义多维数组时,虽然PHP没有限制数的维数,但在实际应用中定义数组的维数不超过三维,

      原因是便于代码的阅读、维数和调试。

    三、遍历数组(使用forecho()方法进行遍历PHP数组)

      使用示例如下: 

    <?php
        $testArray = ['username'=>'Aka','address'=>'湖南衡阳',
        'age'=>20,'major'=>'IT','Email'=>"12345678@qq.com"];
        echo'<br>',$testArray['age'];
        echo '<hr/>';
        //使用方式一 全部遍历
        foreach($testArray as $k => $v){
            echo $k.':'.$v.' ','<br>';
        }
        //使用方式二 遍历值
        echo '<br>','<hr/>';
        foreach($testArray as $k => $v){
            echo $v.' ','<br>';
        }
        //使用方式三 遍历key
        echo '<br>','<hr/>';
        foreach($testArray as $k => $v){
            echo $k.'','<br>';
        }

      

     四、foreach()的引用赋值:

      1.foreach()的传值赋值不会改变数组元素的值: 

        echo '<hr/>';
        //foreach()的传值赋值
        $array = [1,2,3];
        foreach($array as $v){
            $v = $v + 2;
        }
        print_r($array);

      出现上述结果的原因是,foreach()在遍历数组时,数组元素的值$v为传值赋值,数组内元素的值并不会发生变化。

      2.用foreach()的引用赋值来改变数组内元素的值

        echo '<hr/>';
        //foreach()的引用赋值
        $array = [1,2,3];
      //在变量前加'&'符号,引用赋值
    foreach($array as &$v){ $v = $v + 2; } print_r($array); echo '<br> $v='; print_r($v);

      结果: 

     

      注意:在使用foreac()的引用赋值时,要注意as关键字后表示数组元素键名和值的变量,相当于在开发中我们定义的一个全

    局变量,在数组遍历完之后依然可以使用,因此为了防止下次使用$v变量时对上一次有影响,在每次使用完foreach()的引用

    赋值后,利用unset()函数释放掉变量$v

     

  • 相关阅读:
    新能源汽车产业发展规划(2021-2035年)
    Spire.Doc 生成长图
    【Kafka】单机Kafka测试
    【Linux】IO多路复用之select、poll、epoll模型
    【Linux】五种IO模型
    【Linux】零拷贝技术(Zero Copy)
    【Linux】系统相关概念
    【SpringBoot】SpringBoot 整合Redisson
    【Spring】SpringBoot + SpringSession + Redis 实现Session共享
    【SpringBoot】SpringBoot 整合Redis
  • 原文地址:https://www.cnblogs.com/kaka6k66k/p/11793038.html
Copyright © 2011-2022 走看看