美文网首页
PHP中的数组基础 -- PHP 学习 (十二)

PHP中的数组基础 -- PHP 学习 (十二)

作者: 无故下架内容so账号已弃用 | 来源:发表于2019-05-05 22:00 被阅读0次

    PHP 数组简介

    PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。

    官方说明: Array 数组

    PHP 数组的定义

    • 数组是 php 中的重要类型之一, 是复合类型
    • 数据的集合, 在 php中数组是一个有序映射

    PHP 数组的定义与分类

    • 索引数组: 数组的下标是数值

    • 关联数组: 数组的下标为字符是关联数组

    • 注意: php 中数组其实是不区分索引和关联数组的, 它们都是根据键名 key 值来找到对应的值

    定义数组

    • 通过 array() 形式

    • 通过 [] 动态创建

    • 通过 range() 和 compact () 快速创建

      (a) range — 根据范围创建数组,包含指定的元素

      (b) compact — 建立一个数组,包括变量名和它们的值

    • 通过 define() 定义一个常量数组, 注意要 PHP 7.0+

    <?php
    header('content-type: text/html;charset=utf-8');
    
    // 通过 array()
    $arr1 = array(1,2,3);
    print_r($arr1);
    
    /*
     * array() 结果:
     * Array
     * (
     *     [0] => 1
     *     [1] => 2
     *     [2] => 3
     * )
    */
    
    // []
    $arr2 = [0=>'li',1=>'guo',2=>'you'];
    print_r($arr2);
    
    /*
     * [] 结果:
     * Array
     * (
     *     [0] => li
     *     [1] => guo
     *     [2] => you
     * )
    */
    
    // range()
    $arr3 = range(1,10);
    print_r($arr3);
    /*
     * range() 结果:
     * Array
     * (
     *     [0] => 1
     *     [1] => 2
     *     [2] => 3
     *     [3] => 4
     *     [4] => 5
     *     [5] => 6
     *     [6] => 7
     *     [7] => 8
     *     [8] => 9
     *     [9] => 10
     * )
    */
    $arr4 = range(-5,10,2);
    print_r($arr4);
    /*
     * range() 结果:
     * Array
     * (
     *     [0] => -5
     *     [1] => -3
     *     [2] => -1
     *     [3] => 1
     *     [4] => 3
     *     [5] => 5
     *     [6] => 7
     *     [7] => 9
     * )
    */
    
    // compact()
    $username = 'guoyou';
    $age = 24;
    $email = 'guoyou.li@foxmail.com';
    $arr5 = compact('username','age','email');
    print_r($arr5);
    
    /*
     * compact() 结果:
     * Array
     * (
     *     [username] => guoyou
     *     [age] => 24
     *     [email] => guoyou.li@foxmail.com
     * )
    */
    
    // define() PHP 7.0+
    //define('INFO', array('username'=>'liguoyou','tel'=>'13510748888'));
    define('INFO', ['username'=>'liguoyou','tel'=>'13510748888','age'=>'24']);
    print_r(INFO);
    
    /*
     * define()结果: 注意要 php 7.0+
     * Array
     * (
     *     [username] => liguoyou
     *     [tel] => 13510748888
     *     [age] => 24
     * )
     */
    

    数组的运算符相关

    • + 合并数组: 如果键名相同, 使用前面数组的值

    • == 只比较键名和键值是否相同, 如果相同返回 true, 否则返回 false

    • === 既要比较键名和键值是否相同, 还要比较类型和循序是否相同

    <?php
    header('content-type: text/html;charset=utf-8');
    
    // 数组的运算相关
    $arr1 = ['a','b','c'];
    $arr2 = ['t','t','t'];
    $arr3 = $arr1 + $arr2;
    print_r($arr3);
    // 结果: Array ( [0] => a [1] => b [2] => c )
    $arr4 = $arr2 + $arr1;
    print_r($arr4);
    // 结果: Array ( [0] => t [1] => t [2] => t )
    
    $arr5 = $arr1 + [2=>'B',4=>'D'];
    print_r($arr5);
    // 结果: Array ( [0] => a [1] => b [2] => c [4] => D )
    
    $arr6 = ['user'=>'abc','age'=>23];
    $arr7 = ['age'=>23,'user'=>'abc'];
    var_dump($arr6 == $arr7); // bool(true)
    var_dump($arr6 === $arr7); // bool(false)
    
    

    学习资料来源: https://class.imooc.com/sc/30

    相关文章

      网友评论

          本文标题:PHP中的数组基础 -- PHP 学习 (十二)

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