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

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(使用前将#替换为@)

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

  • 如何确定 n 高数字金字塔中的最大路线成本

    我有一个像这样的数字金字塔 7 4 8 1 8 9 2 4 6 7 4 6 7 4 9 4 9 7 3 8 8 routes 32 每个数字都按其系列中的强大程度进行索引 0 9 gt 1 1 8 gt 5 2 8 gt 4 3 7 gt
  • 通过 XMLHttpRequest 将数据从 JavaScript 发送到 PHP

    再会 我正在尝试将一段简单的数据从一个 php 文件 manage php 发送到另一个 view php 我无法通过表单发送数据 我想通过 JS 脚本发送数据 这是我的尝试 var read function id xmlhttp new
  • 如何在二维数组中找到字符串?

    我有一个看起来像这样的数组 var array a b c d e f 我希望能够在数组中搜索字符串 d 并返回对应的值 c try function find str array for var i in array if array i
  • 在php中获取二进制数据大小的正确方法是什么?

    我已阅读文件的一部分 现在想确保该部分的大小正确 我怎样才能在 php 中做到这一点 part fread file 1024 return some function part 1024 我已经阅读了这些示例 但我怀疑是否要使用 strl
  • 当存在联系时如何为数组分配排名号

    当尝试为数组中存在平局的数值分配排名时 我很难知道从哪里开始 因此 例如 我需要像下面这样转换一个数组 myarray 4 76 34 13 34 到另一个数组中 例如 myarray2 1 5 3 5 2 3 5 基本上 当相同的数字在数
  • 如何为 Lumen 的封闭路线指定路线名称?

    您好 我有以下流明路线 router gt get end function Illuminate Http Request request use router controller router gt app gt make App H
  • 如何在Web服务中传递URL

    我想将此 URL 作为网址中的值传递http localhost h2orn php verify php email emails hash hash但是 我只能在 符号之前传递 我想传递所有 URL 我正在使用java网络服务 代码在这
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • 为什么我应该使用 $_GET 和 $_POST 而不是 $_REQUEST? [复制]

    这个问题在这里已经有答案了 除此之外 REQUEST从 cookie 读取 有什么理由我应该使用 GET and POST代替 REQUEST 这样做的理论和实践理由是什么 当我只想让用户的某些数据返回某些数据时 我使用 REQUEST 当
  • 这些加密算法有什么区别?

    两者有什么区别MCRYPT RIJNDAEL 128 MCRYPT RIJNDAEL 256 MCRYPT BLOWFISH等等 哪一种最适合网络数据传输 Rijandel 是 AES 的另一个名称 AES 是当前的 一个好的标准 算法 数
  • 如何将 ctype_alpha 与 UTF-8 结合使用

    如何将 ctype alpha 与 UTF 8 一起使用 我有这个代码 if empty POST false if isset POST first name empty POST first name if ctype alpha PO
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • 如何在javascript中使用自动递增id?

  • 如何覆盖 phpunit 中导出的变量?

    我知道我可以设置环境变量 https phpunit de manual current en appendixes configuration html在我的 phpunit xml 里面
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • PHP 除法浮点值问题

    当我尝试获取余数时 它给出了无效值 我试图获得两位小数的余数 我得到 3 4694469519536E 18 我的价值观是 x 0 1 y 0 005 我尝试了以下方法 echo ed fmod 0 1 0 005 OutPut 3 469
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样
  • PHP 中的 Zip 流

    我有一个 PHP 脚本 可以动态创建 zip 文件并强制浏览器下载该 zip 文件 问题是 我可以直接将zip文件写入连接到用户浏览器的输出流 而不是先将其保存为服务器上的真实文件 然后发送文件吗 提前致谢 如果您的 Web 服务器运行的是

随机推荐

  • 从我们的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