array_udiff、array_udiff_assoc、array_udiff_uassoc 使用方法
<?php // array_udiff 用自定义函数比较数组的差值(array_diff 使用内置函数)
// 使用该函数我们通过进行更复杂的比较 class Rectangle
{
public $width; public $height; public function __construct($width, $height)
{
$this->width = $width;
$this->height = $height;
}
} $array1 = [
'a' => new Rectangle(1, 2),
'b' => new Rectangle(2, 3),
]; $array2 = [
'a' => new Rectangle(2, 3),
'c' => new Rectangle(3, 5),
]; // 键比较函数
function compare_key($key1, $key2) {
if ($key1 == $key2) {
return 0;
} return $key1 > $key2 ? 1 : -1;
} // 值比较函数
function compare_area(Rectangle $value1, Rectangle $value2) {
$area1 = $value1->width * $value1->height;
$area2 = $value2->width * $value2->height; if ($area1 == $area2) {
return 0;
}
return $area1 > $area2 ? 1 : -1;
} // 返回数据差集, 只比较值
var_dump(array_udiff($array1, $array2, 'compare_area')); // 返回数据差集, 同时检查键值(键的比较使用内置方法)
var_dump(array_udiff_assoc($array1, $array2, 'compare_area')); // 返回数据差集, 同时检查键值(键的比较使用自定义函数)
var_dump(array_udiff_uassoc($array1, $array2, 'compare_area', 'compare_key'));
array(1) {
["a"]=>
object(Rectangle)#1 (2) {
["width"]=>
int(1)
["height"]=>
int(2)
}
}
array(2) {
["a"]=>
object(Rectangle)#1 (2) {
["width"]=>
int(1)
["height"]=>
int(2)
}
["b"]=>
object(Rectangle)#2 (2) {
["width"]=>
int(2)
["height"]=>
int(3)
}
}
array(2) {
["a"]=>
object(Rectangle)#1 (2) {
["width"]=>
int(1)
["height"]=>
int(2)
}
["b"]=>
object(Rectangle)#2 (2) {
["width"]=>
int(2)
["height"]=>
int(3)
}
}
array_udiff、array_udiff_assoc、array_udiff_uassoc 使用方法的更多相关文章
- GeSHi Documentation
GeSHi Documentation Version 1.0.8.11 Authors: © 2004 - 2007 Nigel McNie © 2007 - 2012 Benny Baumann ...
- nodejs 的一些PHP函数库
http://locutus.io/php/ nodejs 的一些PHP函数库 PHP extensions in JavaScript array array_change_key_case arr ...
- Deformity PHP Webshell、Webshell Hidden Learning
目录 . 引言 . webshell原理介绍 . webshell的常见类型以及变种方法 . webshell的检测原理以及检测工具 . webshell隐藏反检测对抗手段 0. 引言 本文旨在研究W ...
- 用trie树实现输入提示功能,输入php函数名,提示php函数
参照刘汝佳的trie树 结构体 #include "stdio.h" #include "stdlib.h" #include "string.h&q ...
- PHP一句话木马研究
最近在研究PHP一句话后门,查阅了很多大佬的博客,并从中衍生出了一些可用的方法. 现总结如下: 方案一:回调函数 回调函数:Callback (即call then back 被主函数调用运算后会返回 ...
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- php array_udiff_uassoc比较数组的键值与值
php array_udiff_uassoc 用于带索引检查计算数组的差集,用回调函数比较数据和索引.本文章通过实例向大家介绍array_udiff_uassoc函数的使用方法.需要的码农可以参考一下 ...
- PHP中的数组方法及访问方法总结
一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...
- PHP array_udiff_assoc() 函数
实例 比较两个数组的键名和键值(使用内建函数比较键名,使用用户自定义函数比较键值),并返回差集: <?phpfunction myfunction($a,$b){if ($a===$b){ret ...
随机推荐
- 宿主机ssh免密登录docker容器
一.检查系统内核 二.安装docker 1.yum install docker -y 2.docker version #查看docker版本 3.syste ...
- 写一个脚本批量转换项目中GB2312编码的文件为UTF-8编码
#!/bin/bash convert_file() { for file in `find .` do if [[ -f $file ]] then if [[ ${file##*.} == lua ...
- loadrunner处理https请求
录制到的脚本如下: login() { lr_think_time(10); web_url("verifycode.jsp", "URL=https://192.168 ...
- a5
今日内容: 今天主要还是素材的查找,图标的制作以及调整. 明日计划: 主要还是完成图标,尽可能的美化 困难: 一个是直男式的审美吧,另一个是PS的技术还不够深
- [图算法] 1030. Travel Plan (30)
1030. Travel Plan (30) A traveler's map gives the distances between cities along the highways, toget ...
- sleep(),wait(),yield(),notify()
sleep(),wait(),yield() 的区别 sleep方法和yield方法是Thread类的方法,wait方法是Object的方法. sleep 方法使当前运行中的线程睡眼一段时间,进入不可 ...
- js登录界面代码自用
var btn = document.getElementById("a4"); var usne = document.getElementById("username ...
- 对小组项目alpha发布的评价
第一组:新蜂小组 项目:俄罗斯方块 评论:看见同学玩的时候,感到加速下落时不是很灵敏,没有及成绩的功能,用户的界面仍在修正. 第二组:天天向上 项目:连连看 评论:这个游戏增加了很多好玩的功能,比如更 ...
- PAT 甲级 1050 String Subtraction
https://pintia.cn/problem-sets/994805342720868352/problems/994805429018673152 Given two strings S~1~ ...
- CDN加速-内容分发网络
内容分发网络 (互联网技术) 编辑 CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输 ...