<?php

// array_intersect 的用法是返回一个关联数组(键是第一个参数数组的键),
// 该数组包含了所有在 $array1 中同时也出现在其他参数数组中的值 // 下面的 0,1 键是手动加上去的, 可以去掉, 默认就是 0,1
$array1 = [
"a" => "green",
0 => "red",
1 => "blue",
2 => 'white'
];
$array2 = [
"b" => "green",
"yellow",
"red",
'white',
];
var_dump($array1, $array2);

// 只比较值
echo "array_intersect(\$array1, \$array2): \n";
var_dump(array_intersect($array1, $array2)); echo "array_intersect_key(\$array1, \$array2): \n";
// 只比较键, 只返回键相同的对应数组项(值是第一个参数数组的值), 反正都是返回第一个参数数组里面的项
var_dump(array_intersect_key($array1, $array2)); echo "array_intersect_assoc(\$array1, \$array2): \n";
// 同时比较键值, 可以看做是融合了 array_intersect、array_intersect_key 的功能
// 只有键值对同时相同的时候才会返回
var_dump(array_intersect_assoc($array1, $array2)); function compare($key1, $key2) {
if ($key1 == $key2) {
// 这里使用 === 的时候, array_intersect_ukey 返回的数组中没有 key 为 0 的项
return 0;
} return ($key1 > $key2) ? 1 : -1;
} echo "array_intersect_ukey(\$array1, \$array2): \n";
// array_intersect_ukey 使用自定义函数进行键比较
// !!! 使用该方法需要注意的是, 比较的数组不是关联数组的时候可能会导致错误(上面的例子中 'a' == 0 其实是 true)
var_dump(array_intersect_ukey($array1, $array2, 'compare')); echo "array_intersect_uassoc(\$array1, \$array2): \n";
// array_intersect_uassoc 使用自定义函数进行键比较
// 同时比较键值, 值的比较使用内置函数
var_dump(array_intersect_uassoc($array1, $array2, 'compare'));

  

输出:

array(4) {
["a"]=>
string(5) "green"
[0]=>
string(3) "red"
[1]=>
string(4) "blue"
[2]=>
string(5) "white"
}
array(4) {
["b"]=>
string(5) "green"
[0]=>
string(6) "yellow"
[1]=>
string(3) "red"
[2]=>
string(5) "white"
}
array_intersect($array1, $array2):
array(3) {
["a"]=>
string(5) "green"
[0]=>
string(3) "red"
[2]=>
string(5) "white"
}
array_intersect_key($array1, $array2):
array(3) {
[0]=>
string(3) "red"
[1]=>
string(4) "blue"
[2]=>
string(5) "white"
}
array_intersect_assoc($array1, $array2):
array(1) {
[2]=>
string(5) "white"
}
array_intersect_ukey($array1, $array2):
array(2) {
[1]=>
string(4) "blue"
[2]=>
string(5) "white"
}
array_intersect_uassoc($array1, $array2):
array(1) {
[2]=>
string(5) "white"
}

  

array_intersect、array_intersect_key、array_intersect_assoc、array_intersect_ukey、array_intersect_uassoc 的用法的更多相关文章

  1. php中的常用数组函数(三)(获取数组交集的函数们 array_intersect()、array_intersect_key()、array_intersect_assoc()、array_intersect_uassoc()、array_intersect_ukey())

    这5个获取交集的函数 有 5个对应的获取差集的函数.我是链接. array_intersect($arr1, $arr2); //获得数组同键值的交集 array_intersect_key($arr ...

  2. 005——数组(五)array_diff_ukey()array_diff_uassoc()array_intersect()array_intersect_assoc()array_intersect_key()array_intersect_ukey()array_intersect_uassoc()

    <?php function dump($arr) { print_r($arr); } /**array_diff_ukey() 通过回调函数的方式,返回一个数组在其他数组中不存在键名的值 * ...

  3. PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数详解

    求两个数组的交集问题可以使用 array_intersect(),array_inersect_assoc,array_intersect_key来实现,其中 array_intersect()函数是 ...

  4. PHP之数组函数归类

    数组之所以强大,除了本身声明.存储方式灵活,它还有坚强后盾:一系列功能各异的数组处理函数.就像一只军队,除了领队将军本身能征善战,指挥英明之外,还有一群不怕死.忠实于他的士兵,这样才能显得整体的强大. ...

  5. php 数组函数学习

    1.array_change_key_case array_change_key_case(array,case)函数将数组的所有的键都转换为大写字母或小写字母.array表示目标数组,case表示转 ...

  6. Deformity PHP Webshell、Webshell Hidden Learning

    目录 . 引言 . webshell原理介绍 . webshell的常见类型以及变种方法 . webshell的检测原理以及检测工具 . webshell隐藏反检测对抗手段 0. 引言 本文旨在研究W ...

  7. PHP取不定个数数组交集

    最近有个需求,有一个N个二维数组,N是动态的,不固定个数,现需取这N个数组的交集内容. 用到的函数是array_intersect_assoc 用法 $result_arr = array_inter ...

  8. php代码审计一些笔记

    之前学习了seay法师的代码审计与及80sec的高级审计,整理了一些笔记在印象里面,也发到这里作为记录 1,漏洞挖掘与防范(基础篇) sql注入漏洞            挖掘经验:注意点:登录页面, ...

  9. PHP array_diff 计算数组的差集

    array_diff (PHP 4 >= 4.0.1, PHP 5) array_diff — 计算数组的差集 说明 array array_diff ( array $array1 , arr ...

随机推荐

  1. hadoop常见错误解决方法

    一.启动集群时 1.节点启动失败 1.1端口占用 1.1报错信息:address already in use - bind Address:50070 解决步骤: 查询端口占用:lsof -i:50 ...

  2. 从零开始的Python学习Episode 9——集合

    集合 集合是一个无序的,不重复的数据组合,是python基本的数据类型,把不同的元素组成一起就形成集合. 一.创建集合 s = set('smile')list = ['1','2','3']prin ...

  3. 基于C#的机器学习--机器学习的基本知识

    机器学习的基本知识 ,…用n个观测值测量.但我们不再对Y的预测感兴趣,因为我们不再有Y了,我们唯一感兴趣的是在已有的特征上发现数据模式: ​ 在前面的图中,我们可以看到这样的数据本身更适合于非线性方法 ...

  4. VisualSVN Server的迁移

    VisualSVN Server迁移涉及到两种情况: 第一种情况:VisualSVN Server没有更换电脑或者服务器,只是修改Server name. 第二种情况:当VisualSVN Serve ...

  5. nginx配置,php安装

    yum -y install libxml2 libxml2-develyum -y install libxslt-devel yum -y install bzip2-devel yum -y i ...

  6. 404 Note Found· 第七次作业 - 需求分析报告

    目录 组队后的团队项目的整体计划安排 项目logo及思维导图 项目logo 思维导图 产品思维导图 产品思维导图-引导 产品思维导图-后端数据处理.存储 产品思维导图-短信识别 产品思维导图-智能分析 ...

  7. HttpCookie Class

    提供创建和操作各 HTTP Cookie 的类型安全方法. #region 写入指定Cookie的值 +static void WriteCookie(string cookieName, strin ...

  8. HTML5 <meta> 标签属性,所有meta用法

    基本标签 声明文档使用的字符编码:<meta charset="utf-8" /> 声明文档的兼容模式:<meta http-equiv="X-UA-C ...

  9. centos快速安装lamp

    搭建MySQL数据库 使用 yum 安装 MySQL: yum install mysql-server -y 安装完成后,启动 MySQL 服务: service mysqld restart 设置 ...

  10. 【week8】psp~~进度条

    本周psp 项目 内容 开始时间 结束时间 中断时间 净时间 10月7日 星期一 论文 看生物信息方面的论文 10:00 12:00 5 115 写代码 注册信息从前台传入servlet 18:00 ...