比较两个二维数组并获取交集和差异

2023-12-13

我想比较两个数组之间整行的数据并生成:

  • 相交行的数组和
  • 一个数组,其中第一个数组中的行在第二个数组中找不到,并且
  • 一个数组,其中在第一个数组中找不到第二个数组中的行。

我有两个多维数组。

$array1 = [
    ['sight_id' => 13, 'location' => 'Jodhpur, Rajasthan, India'],
    ['sight_id' => 14, 'location' => 'Jodhpur Jn, Jodhpur, Rajasthan, India'],
    ['sight_id' => 15, 'location' => 'D-Kirtinagar, Jodhpur, Rajasthan, India'],
];

$array2 = [
    ['sight_id' => 13, 'location' => 'Jodhpur, Rajasthan, India'],
    ['sight_id' => 14, 'location' => 'Jodhpur Jn, Jodhpur, Rajasthan, India'],
    ['sight_id' => 16, 'location' => 'Jaisalmer, Rajasthan, India'],
    ['sight_id' => 17, 'location' => 'Fort Road, Amar Sagar Pol, Jaisalmer, Rajasthan, India'],
];

期望的结果:

$intersect_array = [
    ['sight_id' => 13, 'location' => 'Jodhpur, Rajasthan, India'],
    ['sight_id' => 14, 'location' => 'Jodhpur Jn, Jodhpur, Rajasthan, India'],

and

$only_a1 = [
    ['sight_id' => 15, 'location' => 'D-Kirtinagar, Jodhpur, Rajasthan, India'],
]

and

$only_a2 = [
    ['sight_id' => 16, 'location' => 'Jaisalmer, Rajasthan, India'],
    ['sight_id' => 17, 'location' => 'Fort Road, Amar Sagar Pol, Jaisalmer, Rajasthan, India'],
];

将数组转换为一种格式,其中数组索引是sight_id:

$b1 =array();
foreach($a1 as $x)
    $b1[$x['sight_id']] = $x['location'];

$b2 =array();
foreach($a2 as $x)
    $b2[$x['sight_id']] = $x['location'];

计算差值和交集:

$c_intersect = array_intersect_key($b1,$b2);
$c_1 = array_diff_key($b1,$b2);
$c_2 = array_diff_key($b2,$b1);

将数组转换回您的格式:

$intersect_array = array();
foreach($c_intersect as $i=>$v)
    $intersect_array[] = array('sight_id'=>$i,'location'=>$v);

$only_a1 = array();
foreach($c_1 as $i=>$v)
    $only_a1[] = array('sight_id'=>$i,'location'=>$v);

$only_a2 = array();
foreach($c_2 as $i=>$v)
    $only_a2[] = array('sight_id'=>$i,'location'=>$v);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较两个二维数组并获取交集和差异 的相关文章

  • 清理货币字符串的快速方法[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 取消货币格式 https stackoverflow com questions 5139793 php unformat money 如何去掉所有不是数字或点的东西 替换 with 使用轻正
  • Javascript 函数接受 PHP 变量

    我完全空白 为什么这不起作用 我可以通过一个变量来完成此操作 但不能通过两个变量 当我实际使用像这样的数字时getnt 1 2 有用 它只是不适用于两个 PHP 变量 我可以使代码与echo a href nt php nid n a
  • PHP 使用字符串作为运算符

    假设我有一根绳子 char char 我还有两个变量 a 和 b 分别等于 4 和 5 我如何得到结果 a char b ie 4 5 谢谢 您可以使用eval 正如 konforce所建议的 但是最安全的路线是这样的 left int a
  • 在运行时修改方法/函数

    我一直在研究 php 反射方法 我想做的是在方法打开之后和任何返回值之前注入一些代码 例如我想更改 function foo bar foo bar return foo 并向其中注入一些代码 例如 function foo bar som
  • 警告:出于安全原因,`exec()`已被禁用[重复]

    这个问题在这里已经有答案了 我将 gif 上传到我的网站 上传完成后 我可以看到此错误 Warning exec has been disabled for security reasons in data web virtuals 289
  • switch 语句中的 continue 2 和break

    我是 PHP 新手 在网上看到了下面的代码 它有continue 2 and break一起在switch case陈述 这是什么意思 foreach elements as element switch element type case
  • C# 数组 - string[][] 与 string[] [重复]

    这个问题在这里已经有答案了 可能的重复 C 中的多维数组和数组的数组有什么区别 https stackoverflow com questions 597720 what is differences between multidimens
  • Netbeans PHP/javascript 突出显示

    当将 PHP 与 Javascript 混合时 我一直在寻找 NetBeans 7 1 1 代码突出显示错误的解决方案 我也使用 Notepad 这没有问题 Example function showUpload file JS code
  • 对于MySQL查询中的每个结果,推送到数组(复杂)

    好吧 这就是我想做的 我正在运行 MySQL 查询来获取最新的帖子 对于每个返回的行 我需要将行的 ID 推送到数组 然后在数组的该 ID 内 我需要从行中添加更多数据 多维数组 到目前为止 这是我的代码 query SELECT FROM
  • PHPMailer - AddAttachment 不起作用

    我有一个网络表单 它使用 phpmailer 函数将表单内容通过电子邮件发送回给我 我正在尝试添加 AddAttachment 功能 但我似乎在 php ini 中遇到问题 这是我的 html 片段 td div align right A
  • 用 PHP 发送电子邮件 - 空白电子邮件接收

    我正在尝试使用 PHP 发送电子邮件 我的问题实际上是 发送的电子邮件是空白的 我的 PHP 函数 function sendMail template Email Subject USR Id USR Email postdata htt
  • 使用准备好的语句的 SQL ORDER BY

    我已经尝试了该代码的所有不同类型的变体 但无法使其工作 任何人都可以指出我正确的方向吗 if isset GET s And isset GET o if strip tags htmlspecialchars GET s s sortin
  • 如何在没有 SSH 的情况下安装/使用 Composer

    伙计们 我有一个共享主机 我无法使用 SSH 或使用 php 调用 shell shell exec 出于安全原因 我无法因资金问题升级我的服务器 但我需要安装Composer 并使用 SDK 来完成我的项目 有什么方法可以安装 使用com
  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • PHP 相对于 ASP.NET 有什么优势? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 人类可读的 JSON:又名向 json 转储添加空格和换行符

    是否有一个 简单 脚本可以获取 json 数据并对其进行格式化以使其更具可读性 例如 response is a json encoded string var dump response 上面的内容在一行上输出所有内容 我希望将其缩进并加
  • Laravel 模型访问器从缓存中获取 - 性能增强

    我在数据库中有一个项目列表 每个项目都可以选择被否决或赞成 这些投票与其他项目字段一起存储在 MySql 中 例如这样的事情 Schema create items function table table gt increments id
  • Amazon Linux 上的 Nginx + php-fpm = 在信号 11 上退出

    亚马逊 Linux 最新 PHP 5 4 19 cli 构建时间 2013 年 9 月 3 日 23 19 23 nginx版本 nginx 1 2 9 安装 PHP FPM PHP 5 4 19 fpm fcgi 构建时间 2013 年
  • 如何从视图中使用模型函数? - 拉拉维尔 5.4

    我在模型类中创建了一个函数 它是 public function scopetest query return query gt pluck name 我的控制器代码是 public function index books Book al
  • PHP 如何使用比较运算符比较字符串?

    我正在使用比较运算符来比较字符串 我需要对以下两个比较及其结果进行某种解释 if ai gt i echo Yes else echo No output No 为什么这些会这样输出 if ia gt i echo Yes else ech

随机推荐

  • 从我们的java程序执行另一个java程序[重复]

    这个问题在这里已经有答案了 可能的重复 从我们的 Java 程序执行 Java 程序 我想从我们的java程序中执行另一个java程序 当我运行一个名为 First java 的java程序时 它应该提示用户输入任何类名 java文件名 的
  • 从 iOS 访问 Oracle

    我正在开发一个 iPad 应用程序 需要对 Oracle 数据库进行只读访问 有什么办法可以做到这一点吗 据我所知 唯一的选择是使用 OCI 它需要即时客户端形式的预构建二进制文件 不是为 ARM 构建的 或 OJDBC 驱动程序 这两点似
  • 在 T-SQL 中创建会计日历

    我正在尝试创建一个会计日历 其中会计年度从 7 月 1 日开始 一周定义为周一至周日 但例如 如果一个月中一周的第一天是星期六 则星期六到星期日将被视为该月的 1 周 新的一周从星期一开始 到星期日结束 依此类推 请参阅下面我要创建的表格示
  • 删除输出 HTML 代码中的空格

    考虑包含以下内容的 test cfm 文件
  • Javascript - 将字符串作为文本/html复制到剪贴板

    javascript 有没有办法复制 html 字符串 即 b xx b 作为文本 html 粘贴到剪贴板中 以便可以将其粘贴到具有格式 即粗体的 xx 的 gmail 消息中 例如 存在将文本 文本 纯文本 复制到剪贴板的解决方案http
  • 安全地存储 api 的密码而不加密

    我需要在 MySql DB 中存储密码 以便与外部公司的 API 一起使用 在我看来 所有密码都应该在数据库中进行哈希处理 以防网站被黑客攻击并且信息泄露到互联网上 但是 如果我对密码进行哈希处理 如何将它们与需要电子邮件地址和密码才能访问
  • org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException

    如何处理 java lang IllegalStateException org apache tomcat util http fileupload FileUploadBase FileSizeLimitExceededExceptio
  • 致命错误:对非对象调用成员函数 close()。 MySQLi问题

    当我上传到实时服务器时 出现以下错误 它在本地主机上运行正常 我认为这很奇怪 致命错误 在非对象上调用成员函数 close 它所指的行 stmt gt close 与数据库的连接 connection new mysqli MYSQL HO
  • Android 搜索对话框的样式/主题

    tl dr 搜索对话框拾取应用程序主题中的白色文本样式 使搜索文本不可见 我正在为一个看似微不足道的问题而苦苦挣扎 我的应用程序使用深色背景 并且我使用 EEEEEE 将文本颜色调整为比标准灰色更亮 我已经实现了一个搜索对话框 Honeyc
  • Redis 主动-主动复制

    我在用redis version 2 8 3 我想建立一个redis簇 但这个簇中应该有multiple master 这意味着我需要多个对所有其他节点具有写入访问权限和应用能力的节点 我可以构建一个包含一个主服务器和多个从服务器的集群 我
  • 仅使用传递的参数子集创建一个namedtuple对象

    我使用以下方法从 MySQL 数据库中提取行作为字典 使用 SSDictCursor 并进行一些处理 from collections import namedtuple class Foo namedtuple Foo id name a
  • 是否可以在 iframe 上停止/暂停视频?

    这是视频 我想停止或暂停 可以吗 只想坚持在 iframe 上 http jsfiddle net karimkhan 2Lgxk5h3 7 js jquery 中有相同的函数吗
  • Qt的IP地址小部件,类似于MFC的IP地址控制

    我正在Qt中寻找一个类似于MFC的IP地址控制的小部件 有谁知道这样的小部件 或者我如何创建一个小部件 我不知道什么是 MFC IP Widget 但看起来它是一个输入 IP 地址的 Widget 您需要使用带有 inputMask 000
  • WPF 组合框显示成员路径

    好吧 我查看了其他问题 似乎没有得到答案 所以希望这里有人能得到答案 非常简单的问题为什么 DisplayMemberPath 属性不绑定到该项目
  • jsonp comet 挂起请求导致浏览器上丑陋的“正在加载”状态

    我正在使用 jsonp 进行跨域 comet 请求 正在加载 状态确实很烦人 有什么方法可以用javascript抑制这种情况吗 对于那些不熟悉 jsonp 的人来说 它基本上会注入一个脚本标记 但在我的情况下 我将请求挂在我的服务器上 直
  • 嵌套函数定义和范围(UnboundLocalError)[重复]

    这个问题在这里已经有答案了 为什么下面的代码无效 def foo1 x 5 def bar if x 5 x 6 print x bar 虽然此代码有效 def foo2 x 5 def bar if x 5 print ok print
  • 使用 jQuery 获取 html 元素的宽度(以百分比 % 表示)

    If I alertcss 选择器设置为的元素width 100 我明白了px 有什么方法可以让它进来吗 根据 css 设置 我需要它来修复一些具有流畅布局的脚本 css my element width 100 javascript al
  • 对指针列表进行排序时出现问题

    我正在尝试对指针列表进行排序 在我的例子中 每个指针都是 Job 类型 我的目的是按序列号对作业进行排序 void Container jobSort list
  • ionic 2 如何使用索引动态加载

    对于 ionic 1 我已经这样做了ng if index 3 0 但我需要在网格视图中动态加载数据 其中一行有两个列 我怎样才能做到这一点 我尝试了下面的代码 in my schudle ts ResourceData name ksjs
  • 比较两个二维数组并获取交集和差异

    我想比较两个数组之间整行的数据并生成 相交行的数组和 一个数组 其中第一个数组中的行在第二个数组中找不到 并且 一个数组 其中在第一个数组中找不到第二个数组中的行 我有两个多维数组 array1 sight id gt 13 locatio