array_intersect、array_intersect_key、array_intersect_assoc、array_intersect_ukey、array_intersect_uassoc 的用法
<?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 的用法的更多相关文章
- 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 ...
- 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() 通过回调函数的方式,返回一个数组在其他数组中不存在键名的值 * ...
- PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数详解
求两个数组的交集问题可以使用 array_intersect(),array_inersect_assoc,array_intersect_key来实现,其中 array_intersect()函数是 ...
- PHP之数组函数归类
数组之所以强大,除了本身声明.存储方式灵活,它还有坚强后盾:一系列功能各异的数组处理函数.就像一只军队,除了领队将军本身能征善战,指挥英明之外,还有一群不怕死.忠实于他的士兵,这样才能显得整体的强大. ...
- php 数组函数学习
1.array_change_key_case array_change_key_case(array,case)函数将数组的所有的键都转换为大写字母或小写字母.array表示目标数组,case表示转 ...
- Deformity PHP Webshell、Webshell Hidden Learning
目录 . 引言 . webshell原理介绍 . webshell的常见类型以及变种方法 . webshell的检测原理以及检测工具 . webshell隐藏反检测对抗手段 0. 引言 本文旨在研究W ...
- PHP取不定个数数组交集
最近有个需求,有一个N个二维数组,N是动态的,不固定个数,现需取这N个数组的交集内容. 用到的函数是array_intersect_assoc 用法 $result_arr = array_inter ...
- php代码审计一些笔记
之前学习了seay法师的代码审计与及80sec的高级审计,整理了一些笔记在印象里面,也发到这里作为记录 1,漏洞挖掘与防范(基础篇) sql注入漏洞 挖掘经验:注意点:登录页面, ...
- PHP array_diff 计算数组的差集
array_diff (PHP 4 >= 4.0.1, PHP 5) array_diff — 计算数组的差集 说明 array array_diff ( array $array1 , arr ...
随机推荐
- Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向
原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...
- 选题博客:北航iCourse课程信息平台
1. 用户调查 在选题的时候,我们面向北航所有本科在读本科生,发布了<北航信息平台用户调查>.此次问卷调查共回收有效问卷95份. 1.1 功能需求调查 调查其中一项是让同学们对平台功能进行 ...
- JS加密库
作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正 本文主要是参考aicoder马伦老师的博 ...
- 武汉天喻信息 移动安全领域 SE(Secure Element)
产品简介: SE(Secure Element)为安全模块,是一台微型计算机,通过安全芯片和芯片操作系统(COS)实现数据安全存储.加解密运算等功能.SE可封装成各种形式,常见的有智能卡和嵌入式安全模 ...
- LeetCode 454. 4Sum II (C++)
题目: Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are su ...
- 软件工程-东北师大站-第六次作业PSP
1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 4.本周PSP饼状图
- Week4_Linux书本一二两章
第一章的学习内容就是对Linux内核有一个基本的了解,同时知道一些关于Linux的知识. 学习Linux,可以自己有一台装有Linux操作系统的机器,源代码的作用无可替代: Linux发展历程简介:L ...
- vue cli3 配置postcss
1.安装postcss-import,postcss-cssnext 包 2.修改package.json 将postcss响应的内容替换为 "postcss": { " ...
- 【树上DFS】Tree and Polynomials
http://codeforces.com/gym/101372 D push1[i][k]:所有操作1总共要让节点i下推多少系数k push2[i][k]:所有操作2总共要让节点i上推多少系数k s ...
- Alpha 冲刺(6/10)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 测试服务器并行能力 学习MSI.CUDA ...