• PHP Cookbook读书笔记 – 第04章数组


    数组是在web开发中经常会用到的部分,所以此章节的内容比较重要
    unset() : 销毁一个变量(当然也包括数组)
    array_pad() : 用值填补指定长度的空缺
    array_splice() : 除了可以通过此函数移除数组中的元素,还可以指定另一个数组替换移除的部分
    array_merge() : 合并多个数组
    array_push() : 在数组末尾添加值
    array_map() : 通过一个回调函数处理数组中的多个元素
    is_array() : 检测一个变量是否是数组类型

    array_shift() : 移除数组中的第一个元素
    array_pop() : 返回数组中的最后一个元素并将其从原数组中移除
    join() : 之前章节介绍过,将数组按其指定的分隔符合并为一个字符串
    array_key_exists() : 查询数组中是否包含某键名
    in_array() : 查询某个值是否在数组中(返回布尔值)

    in_array 容易出错的地方

    $array = array(1, '2', 'three');
    
    in_array(0, $array);        // true!
    in_array(0, $array, true);  // false
    in_array(1, $array);        // true
    in_array(1, $array, true);  // true
    in_array(2, $array);        // true
    in_array(2, $array, true);  // false

    array_search() : 在数组中查询给定值(注意,存在是返回该值的键名

    array_filter() : 和array_map() 类似,通过一个回调函数处理数组,但通过函数返回的true或false来决定是否保留此元素

    max() : 查询数组中的最大值

    min() : 查询数组中的最小值

    arsort() : 对数组的键排序,并保持键与值的关系

    array_reverse() : 数组反序

    sort() : 对数组的值排序,原键名将改变

    asort() : 对数组的值排序,并保持键与值的关系

    natsort() : 用自然排序算法对数组的值排序,如果有1,0,11,2,21那么结果为0,1,2,11,21

    usort() : 使用用户指定的排序函数对数组进行排序

    array_multisort() : 对多数组进行排序

    shuffle() : 数组元素乱序(很好用的一个函数)

    array_unique() : 将值唯一化(即移除重复的元素)

    array_walk() : 类似array_map(),也是通过一个回调函数对数组中的每个元素进行处理,区别是array_map()返回一个处理后的结果,array_walk()返回处理是否成功(true or false)。因为这个区别也就决定了array_map()不会改变原数组,array_walk()是对原数组进行处理。

    array_walk_recursive() : 对数组中的每个成员递归地应用用户函数

    在使用foreach语句时,PHP迭代的是相应数组的一个副本,而非数组本身。在使用each()函数和for语句时,PHP迭代的是原始数组。

    遍历数组的四种方式:

    foreach ($array as $value) {
        // Act on $value
    }
    
    foreach ($array as $key => $value) {
        // Act II
    }
    
    for ($key = 0, $size = count($array); $key < $size; $key++) {
       // Act III
    }
    
    reset($array) // reset internal pointer to beginning of array
    while (list($key, $value) = each ($array)) {
        // Final Act
    }

    数组中集合的运用

    //并集
    $union = array_unique(array_merge($a, $b));
    //交集
    $intersection = array_intersect($a, $b);
    //差集
    $difference = array_diff($a, $b);
    //对称差集
    $difference = array_merge(array_diff($a, $b), array_diff($b, $a));
  • 相关阅读:
    mirco新建proto流程
    Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息
    Rails核心组件
    Ruby中文乱码问题
    python str转dict
    SQLserver AwaysOn日志文件过大,处理办法
    MySQL的一些小细节
    mysql删除表中重复值
    可恶的自增长标识符
    reset slave all更彻底
  • 原文地址:https://www.cnblogs.com/Excellent/p/2288721.html
Copyright © 2020-2023  润新知