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 — 用回调函数比较数据来计算数组的差集
*/?>
PHP:第四章——PHP数组array_diff计算数组差集的更多相关文章
- PHP array_diff 计算数组的差集
array_diff (PHP 4 >= 4.0.1, PHP 5) array_diff — 计算数组的差集 说明 array array_diff ( array $array1 , arr ...
- PHP:第四章——PHP数组array_intersect计算数组交集
<pre> <?php //array_intersect计算数组交集 header("Content-Type:text/html;charset=utf-8" ...
- C# Language Specification 5.0 (翻译)第四章 类型
C# 语言的类型分为两大类:值类型(value type)和引用类型(reference type),而它们又都同时具有至少一个类型形参的泛型类型(generic type).类型形参(type pa ...
- C++ Primer Plus学习:第四章
C++入门第四章:复合类型 1 数组 数组(array)是一种数据格式,能够存储多个同类型的值. 使用数组前,首先要声明.声明包括三个方面: 存储每个元素中值的类型 数组名 数组中的元素个数 声明的通 ...
- C语言学习笔记 (004) - 数组名和数组首地址(转)
一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址.指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数据起始地址或某一元素的地址放到一个指针变量中) ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算
<利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...
- [书籍翻译] 《JavaScript并发编程》第四章 使用Generators实现惰性计算
本文是我翻译<JavaScript Concurrency>书籍的第四章 使用Generators实现惰性计算,该书主要以Promises.Generator.Web workers等技术 ...
- 《C专家编程》第四章——令人震惊的事实:数组和指针并不相同
数组和指针是C语言里相当重要的两部分内容,也是新手程序员最容易搞混的两个地方,本章我们锁定指针与数组,探讨它们的异同点. 首先来看指针与数组在声明上的区别: int a[10]; int *p; 很明 ...
随机推荐
- 20145106 《Java程序设计》第8周学习总结
教材学习内容总结 NIO即New IO.对于高级输入/输出处理.java从JDK1.4开始提供了NIO,在JAVA SE 7 中又提供了NIO2,认识这些高级输入/输出处理API(Applicatio ...
- 《网络对抗》拓展:注入shellcode
实践三 知识要求: shellcode:指溢出后执行的能开启系统shell的代码.但是在缓冲区溢出攻击时,也可以将整个触发缓冲区溢出攻击过程的代码统称为shellcode,因此可以将shellcode ...
- linux下kermit工具的使用
1.环境: ubuntu16.04 2.背景: 想更换下位机内核 3.使用kermit进行串口传输 举例:传输文件到下位机 2.1首先进入下位机的uboot 2.2 使用uboot自带的命令从串口接收 ...
- bootstrap6 关于bs的使用总结
在同一行中也可以有多个过了行的 "行", 即列的"总宽度"超宽度12. 即实现堆叠display:block和水平排列float的自动控制, 在div的clas ...
- insert into 和 where not exists
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/3569bd60-1299-4fe4-bfa1-d77ffa3e579f/insert ...
- testlogin
!/usr/bin/env python coding:utf-8 import requests import unittest import json,urllib class testlogin ...
- 111python
补充一句,为兼容平台文件地址可以这么写: file = os.path.join('dir', 'file_name')
- 【Python】【fmt】
[练习] #练习1:format print(format(3.44444,'.3e')) #3.444e+00 #练习2:findall() & finditer()import ...
- iBatis的CRUD操作详细总结
昨天晚上看了一下关于iBatis的一个讲解的视频,讲的和我的这个简单的总结差不多.... 思考了一下还是把主要操作都总结一下吧,当然这里也不是全的,知识简单的CRUD... 首先我觉得持久层的操作主要 ...
- Java 面向对象之static,final,匿名对象,内部类,包,修饰符
01final关键字概念 A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这 ...