• 数组之List


    <?php
    // each经常和list一起用
    // 而list,是80%的PHPer都搞不清楚的一个问题
    
    
    // list是重合赋值语句,可以一次性为多个变量赋值
    
    // 下面,是常见的操作---即把数组的单元赋给多个变量
    $arr = array('东','南','西','北');
    $east = $arr[0];
    $south = $arr[1];
    $west = $arr[2];
    $north = $arr[3];
    
    // 上面的这个过程,用4次赋值,把数组的4个单元,赋给4个变量,麻烦
    echo $east,$south,$west,$north,'<br />';
    
    
    
    
    // 把春夏秋冬赋给4个变量
    $arr = array('春','夏','秋','冬');
    list($spring,$summer,$fall,$winter) = $arr;
    echo $spring,$summer,$fall,$winter,'<br />';
    
    
    
    list($a,$b,$c) = array(2=>'赵',3=>'钱',1=>'孙');
    var_dump($a); echo $b,$c,'<br />';
    
    
    /***
    list是如何工作的?
    
    因为list能够给多个变量赋值,即把数组的多个单元分别赋给多个值.
    那么,自然要注意1个最重要的地方
    即-----把数组的哪个单元 对应 赋给哪个变量???
    
    具体对应如下:
    在list中,按","隔开的顺序,从左到右,分别对应右侧数组(设为$arr)
    $arr[0],$arr[1],$arr[2],.... $arr[N]
    
    如果需要对应右侧的$arr[x] 不存在怎么办?
    答:依然是先对应,不存在,当成NULL来处理.
    
    
    $a <===>  $arr[0]
    $b <===>  $arr[1]
    $c <===>  $arr[2]
    
    映射工作完成!!!!! 
    开始赋值!
    
    
    赋值的过程,和映射的顺序是反的,是从右往左赋的值
    $c = $arr[2];
    $b = $arr[1];
    $a = $arr[0];
    
    
    $c = '赵';
    $b = '孙';
    $a = NULL; // $arr[0]不存在
    赋值完毕!!!!!!!!!
    
    因此,最终打印 NULL,孙,赵
    ***/
    
    
    
    ?>
    <?php
    
    // 仔细判断,打出$arr来
    
    list($arr[0],$arr[1],,$arr[2]) = array(3=>'赵',1=>'钱',5=>'孙',2=>'李',0=>'燕');
    print_r($arr);
    
    /**
    分析:
    先从左到右来对应着分配值
    
    $arr[0] <====> array[0] 燕
    $arr[1] <====> array[1] 钱
    $arr[2] <====> array[3] 赵
    
    分配完毕,开始赋值!!!!
    从右到左赋值
    
    $arr[2] = 赵
    $arr[1] = 钱
    $arr[0] = 燕
    
    
    数组打印,并不是如你想的,按索引的大小来打印,
    而是按创建时的顺序来打印.
    
    因此,最终打印 
    array(
    2=>'赵',
    1=>'钱',
    0=>'燕'
    )
    **/
    
    %>
  • 相关阅读:
    [Linux]-Nginx平滑升级
    [Linux]-部署PXE网络装机
    [Linux]--构建DR模式的LVS群集
    [Linux]--构建NAT模式的LVS群集
    [Linux]-Apache,awstats部署
    [Linux]-部署Nginx Apache动静分离
    [Linux]-Rsync同步
    Vue.js内部运行机制(一)
    JS类数组对象及如何转变为真正的数组
    JS、TS中的符号表达式
  • 原文地址:https://www.cnblogs.com/zy2012/p/2801299.html
Copyright © 2020-2023  润新知