array_diff、array_diff_key、array_diff_ukey、array_diff_assoc、array_diff_uassoc 的用法
<?php // array_diff* 系列的函数都返回关联数组
// array_diff* 系列函数返回数组的差集(返回在第一个参数中, 但不在其他参数中的元素) $array1 = [
'a' => 1,
'b' => 2,
'e' => 3,
];
$array2 = [
'a' => 1,
'b' => 3,
'c' => 5,
]; // 只比较值
// 只返回在第一个参数中而不在其他参数中出现的值
echo "array_diff(\$array1, \$array2): \n";
var_dump(array_diff($array1, $array2)); // 只比较键
// 只返回在第一个参数中而不在其他参数中出现的键
echo "array_diff_key(\$array1, \$array2): \n";
var_dump(array_diff_key($array1, $array2)); // 返回键值都不一样的元素
echo "array_diff_assoc(\$array1, \$array2): \n";
var_dump(array_diff_assoc($array1, $array2)); function compare($key1, $key2) {
if ($key1 == $key2) {
return 0;
}
return ($key1 > $key2) ? 1 : -1;
} // array_diff_uassoc 同时比较键值, 返回键值都不一样的元素(出现在第一个数组, 没有出现在其他数组的元素)
// 使用自定义回调函数进行 键比较, 值的比较使用 array_diff
echo "array_diff_uasssoc(\$array1, \$array2): \n";
var_dump(array_diff_uassoc($array1, $array2, 'compare')); // array_diff_ukey 和 array_diff_uassoc 作用相似
// 只是 array_diff_ukey 只比较键, 也是使用自定义函数
echo "array_diff_ukey(\$array1, \$array2): \n";
var_dump(array_diff_ukey($array1, $array2, 'compare'));
输出:
array_diff($array1, $array2):
array(1) {
["b"]=>
int(2)
}
array_diff_key($array1, $array2):
array(1) {
["e"]=>
int(3)
}
array_diff_assoc($array1, $array2):
array(2) {
["b"]=>
int(2)
["e"]=>
int(3)
}
array_diff_uasssoc($array1, $array2):
array(2) {
["b"]=>
int(2)
["e"]=>
int(3)
}
array_diff_ukey($array1, $array2):
array(1) {
["e"]=>
int(3)
}
array_diff、array_diff_key、array_diff_ukey、array_diff_assoc、array_diff_uassoc 的用法的更多相关文章
- php中的常用数组函数(一)(比较多个数组的差集的函数们 array_diff_assoc() array_diff() array_diff_key() array_diff_ukey() array_diff_uassoc())
array_diff_assoc($arr1, $arr2, $arr3,... n); 返回:一个$arr1的副本,后续的数组中出现一个键值相同的元素,就在副本中删掉这个元素,最后返回这个副本. 如 ...
- 004——数组(四)array_search() array_change_key_case() array_chunk() array_combine() array_diff() array_diff_key() array_diff_assoc
<?php /** * in_array() 判断一个内容是否在数组中: */ /*$arr=array(1,2,3,4,5); if (in_array('1',$arr,TRUE)){ // ...
- php 数组函数学习
1.array_change_key_case array_change_key_case(array,case)函数将数组的所有的键都转换为大写字母或小写字母.array表示目标数组,case表示转 ...
- php网摘收藏
1.thinkphp3.2.3开发手册: http://document.thinkphp.cn/manual_3_2.html 2.ThinkPHP3.2.3的函数汇总:http://www.thi ...
- PHP基础知识总结(二) 数据类型、数组、变量和运算符
一.PHP是服务器端的脚本语言.在服务器端解析完成后,向前端浏览器发送html. PHP文件的部署位置在:xampp\htdocs文件夹下,当然这个位置可以修改.二.PHP基本语法 1.文件后缀名是p ...
- 关于php的array_diff和array_diff_assoc的使用总结
关于php的array_diff和array_diff_assoc的使用总结 2015-11-07 17:01 184人阅读 评论(0) 收藏 举报 分类: php学习感想(1) 版权声明:本文为 ...
- 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 数组用法!
数组的起始下标可以不从0开始,例子为从2开始. $data = array(2=>'A','B','C'); 运行结果:$data = array(2=>'A',3=>'B' ...
- PHP:第四章——PHP数组array_diff计算数组差集
<pre> <?php header("Content-Type:text/html;charset=utf-8"); /*知识点一:array_diff — 计 ...
随机推荐
- asp.net mvc同一个view展示多个不同列表思路
asp.net mvc一个模型一个view容易展示,可是遇到像首页那样,要同时调用好几个不同表的内容一小部分展示时,该怎么是好呢? 下边根据我的测试,用的是mvc access数据测试 先建立一个强类 ...
- leetcode个人题解——#36 valid Sudoku
思路题目里已经给出来了,判断是否是一个有效数独,只需满足以下三个条件: 1.同行元素不重复且1-9都有: 2.同列元素不重复且1-9都有: 3.每个粗线分隔的3*3的小九宫格元素不重复且1-9都有. ...
- 点滴拾遗 - 自定义 Format 控制 String.Format 行为
点击下载示例代码 String.Format 一重载方法的签名如下 public static string Format( IFormatProvider provider, string form ...
- Java线上应用故障排查之一:高CPU占用 (转)
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...
- 到底什么是BFC、IFC、GFC和FFC,次奥?
软件开发的一般被称为民工,搞前端的,有人形容为是掏粪工,说白了连民工级别高都没有.说直接点就是个制作界面的,注意,连设计界面的都算不上,一般前端都是拿着设计稿去照这样子开发的. 说这些无非是觉得前端前 ...
- app开发相关
app播放UIWebview 没有声音解决: 设置 allowsInlineMediaPlayback = YES; mediaPlaybackRequiresUserAction = NO
- 复利计算器4.0之再遇JUnit
复利计算器4.0之再遇JUnit 前言 虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测 ...
- virtual judge 本地部署方案
这是一种将自己的电脑当作服务器来部署一个vj的方法,我也是参考前辈们的做法稍作了改动,如果在服务器上部署的话需要在细节上稍作改动: 一.什么是Virtual Judge? vj的工作原理什么? vj ...
- 跨域写cookie
假设a站想往b站写cookie,那么目前有两种方案,参考如下: 第一种(使用jsonp): a站js代码如下: $.ajax({ url: 'http://www.b.com/jsonp.jsp?do ...
- 玩下软工项目,第一轮--全局Context的获取,SQLite的建立与增删改查,读取用户通话记录信息
项目的Github地址:https://github.com/ggrcwxh/LastTime 采用基于git的多人协作开发模式 软件采用mvc设计模式,前端这么艺术的事我不太懂,交给斌豪同学去头疼了 ...