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

 

原文地址:https://www.cnblogs.com/kaka6k66k/p/11793038.html