• 首页课程PHP趣味闯关课堂数组的定义

    数组的定义

    目录列表

    数组的定义

    数组在之前我们让大家记住两个观点:

    • 数组可以存入多个不同类型的数据,甚至还可以存数组,这样的数组我们叫多维数组,是一个复合数据类型。

    • 数组的英文是array,学一了一下最简单的数组声明。

    那我们来进行简单的回顾:

    <?php
    
    $shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');
    echo '<pre>';
    var_dump($shu);
    echo '</pre>';
    
    ?>

    打印结果:

    /*
    array(4) {
      [0]=>
      int(1)
      [1]=>
      float(1.5)
      [2]=>
      bool(true)
      [3]=>
      string(33) "天王盖地虎,小鸡炖蘑菇"
    }
    */

    在上例中,我们发现存入了多种类型的数据:

    • 整型

    • 浮点型

    • 布尔型

    • 字符串

    我们仔细观察一下上面的结果,你会发现以下几个特点:

    • array(size = 4) 说明里面有4个元素

    • 0 => int 1 我们知道int是整型的意思,1是一个整型的数值。那前面的0,1,2,3和=>代表什么意思呢?

    • 最新前的0,1,2,3代表的是值的读取标识号,我们称之为下标或者键(英文:key)

    • => 是一个符号标准叫法叫作:键值对应符。因此,以后再看到 0=> int 1 可以这样来说。 下标访问符0对应整型的1。

    • 我们还称数组里面的键值对为元素,元素就是键值对的组合。

    我们通过上例,其实你一不小心的就完成了数组其中的一种声明方式:索引数组的声明哟。

    填空,声明一个数组。

    $class (1,2,'年级');

    索引数组

    所谓索引数组:就是下标全为整型的数组。

    索引数组的下标必须要从0开始吗?

    答:索引数组并不一定要从0开始。

    那如何能够不从0开始呢?

    答:需要用到大家在上面学的一小块知识哟。就是键值对应符。我们来动手写写:

    <?php
    
    $kele = array(5=>'我',20=>'PHP中文网');
    
    //打印显示$kele
    echo '<pre>';
    var_dump($kele);
    echo '</pre>';
    
    ?>

    结果:

    /*
    array(2) {
      [5]=>
      string(3) "我"
      [20]=>
      string(12) "PHP中文网"
    }
    */

    这样写你再看看结果是不是下标就不再是0了吧。

    每次用array()写的太麻烦了,还可以不用写array哟,更简单。

    实例:

    <?php
    $minren = [
               '杨幂',
               '王珞丹',
               100 => '刘亦菲',
               '黄圣依',
               '范冰冰'
           ];
    echo '<pre>';
    var_dump($minren);
    echo '</pre>';
    ?>

    上面是这两种写法。当然,你自己喜欢使用哪一种就使用哪一种来声明。

    填空,声明一个下标从1开始的索引数组。

    $minren = ( 'hello','php_cn');

    关联数组

    索引数组适当的变一下形就出现了关联数组。只要数组里面有一个下标为字符串的数组,就为关联数组。

    通过上例中,我们发现数组的下标只能够为字符串,当然不能够满足我的需求。

    假设我想声明一个下标为帅对应陈奕迅这个值。肯定不能满足我的需求。

    那我们来声明一下关联数组。跟索引数组的声明方式完成一样。不过不同的是,必须要指定字符串的下标和必须要使用键值对应符。

    例如:

    <?php
    
    //声明一下关联数组
    $rela = array(
           '帅' => '陈奕迅',
           '很帅' => '黄晓明',
           '灰常灰常帅' => '宁泽涛',
           '有男人味的大叔' => '吴秀波',
    );
    //再来玩玩简洁声明
    $drink = [
            '美' => '凤姐',
            '很美' => '芙蓉姐姐',
            'verymei' => '杨幂',
            '心中滴女神呀' => '华妃',
            100 => '孙俪',
            '娘娘',
           ];
    // 输出 $rela
    echo '<pre>';
    var_dump($rela);
    // 输出$drink
    var_dump($drink);
    echo '</pre>';
    
    ?>

    结果:

    /*
    array(4) {
      ["帅"]=>
      string(9) "陈奕迅"
      ["很帅"]=>
      string(9) "黄晓明"
      ["灰常灰常帅"]=>
      string(9) "宁泽涛"
      ["有男人味的大叔"]=>
      string(9) "吴秀波"
    }
    array(6) {
      ["美"]=>
      string(6) "凤姐"
      ["很美"]=>
      string(12) "芙蓉姐姐"
      ["verymei"]=>
      string(6) "杨幂"
      ["心中滴女神呀"]=>
      string(6) "华妃"
      [100]=>
      string(6) "孙俪"
      [101]=>
      string(6) "娘娘"
    }
    */

    我们通过实验知道:

    • 声明关联数组是 键名 => 值

    • 在关联数组可以有索引数组的元素

    • 关联数组中的索引数组的元素后再声明了无下标的元素,依然是最大值+1原则。(观察上图中的值为孙俪、娘娘的两个元素)。

    其他的关联数组声明方式:

    <?php
        $drink['nf'] = '农夫山泉';
        $cocacola = '可口可乐';
        //当然可以是变量哟
        $drink['kl'] = $cocacola;
        $data = array(
            'kl' => $cocacola,
        );
        echo '<pre>';
        var_dump($drink);
        echo '</pre>';
        
     // 结果
     /*
     array(2) {
      ["nf"]=>
      string(12) "农夫山泉"
      ["kl"]=>
      string(12) "可口可乐"
    } 
    */
    ?>


    填空,声明一个下标为‘name’的关联数组。

    <?php $rela = ''=>'php中文网','age'3; var_dump($rela); ?>

    PHP中文网