• PHP:第四章——PHP数组array_diff计算数组差集


    <pre>
    <?php
    
    header("Content-Type:text/html;charset=utf-8");
    /*知识点一:array_diff — 计算数组的差集
    原形:array array_diff ( array $array1 , array $array2 [, array $... ] )
    功能:对比返回在 array1 中但是不在 array2 及后面参数数组中的值。
    返回:返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。
    注意:返回的数组键名保留不变。
    应用背景案例分析:
    假设我们做一个邮件群发系统,邮件都在数组 $a中保留。
    如果有本次我们不想发送给其中特定的几个邮箱,没必要从$a中删除,因为下次还有添加比较麻烦。
    处理方法:在做一个数组$b,让系统自动差集计算,不对在$b中包含的几个用户发邮件,其他都发送。
     */ 
    //例:
    /*$a = range(1,9);        //创建一个包含 1,2,3,4,5,6,7,8,9 的数组
    $b = array(5,6,1);        //计划排除其中的 1,5,6
    $c = array_diff($a,$b); //结果为  2,3,4,7,8,9*/ 
    
    //例:
    $a = array('动', '美', '学', '院'); 
    $b = array('a'=>'学','美');
    $c = array_diff($a,$b);
    var_export($c);     //结果为 动 院
    
    
    /*知识点二:array_diff_assoc — 带索引检查计算数组的差集
    函数原形:array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )
    功能:计算差集,要求键值对完全相同的才进行减去。
    返回:返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的"键值对"
    */
    $a = array('d' => '动', 'l' => '美', 'x' => '学', 'y' => '院'); 
    $b = array('l' => '美','a' => '动' );
    $c = array_diff_assoc($a,$b);
    var_export($c); 
    //结果:array ( 'd' => '动', 'x' => '学', 'y' => '院', )
    
    /*知识点三:array_diff_key — 使用键名比较计算数组的差集
    函数原形:array array_diff_key ( array $array1 , array $array2 [, array $... ] )
    根据 array1 中的键名和 array2 进行比较,返回不同键名的项。 
    本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。
    */
    $a = array('d' => '动', 'l' => '美', 'x' => '学', 'y' => '院'); 
    $b = array('d' => '学','l' => '美');
    $c = array_diff_key($a,$b);
    var_export($c);     //结果:array ( 'x' => '学', 'y' => '院', )
    
    /*目前关于array_diff的函数及变种一共有八个分别如下,比较实用的有三个
    array_diff_assoc — 带索引检查计算数组的差集
    array_diff_key — 使用键名比较计算数组的差集
    array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
    array_diff_ukey — 用回调函数对键名比较计算数组的差集
    array_diff — 计算数组的差集
    array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
    array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
    array_udiff — 用回调函数比较数据来计算数组的差集
    */?>
  • 相关阅读:
    python编程学习进度七
    python编程学习进度六
    SOA——2020.5.15
    代码大全001/
    Refined Architecture阶段——细化架构
    架构即未来003(摘自网络)
    我对外包公司的小小看法
    架构即未来002
    每日日报
    架构即未来阅读笔记001
  • 原文地址:https://www.cnblogs.com/yiweiyihang/p/7153542.html
Copyright © 2020-2023  润新知