Get difference between associative rows of two 2-dimensional arrays(获取两个二维数组的关联行之间的差异)
本文介绍了获取两个二维数组的关联行之间的差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个数组,这些数组包含有关id
、linklabel
和url
的信息,格式如下:
$pageids = [
['id' => 1, 'linklabel' => 'Home', 'url' => 'home'],
['id' => 2, 'linklabel' => 'Graphic Design', 'url' => 'graphicdesign'],
['id' => 3, 'linklabel' => 'Other Design', 'url' => 'otherdesign'],
['id' => 6, 'linklabel' => 'Logo Design', 'url' => 'logodesign'],
['id' => 15, 'linklabel' => 'Content Writing', 'url' => 'contentwriting'],
];
$parentpage = [
['id' => 2, 'linklabel' => 'Graphic Design', 'url' => 'graphicdesign'],
['id' => 3, 'linklabel' => 'Other Design', 'url' => 'otherdesign'],
];
我现在正在尝试比较这两个数组,以便找到$pageids
中而不是$parentpage
中的信息-这将组成另一个名为$pageWithNoChildren
的数组。但是,当我使用以下代码时:
$pageWithNoChildren = array_diff_assoc($pageids,$parentpage);
array_diff_assoc()
在第一级数组上运行,因此看到$pageids
和$parentpages
都有[0]和[1]键,因此它会忽略它们,并返回从[2]开始的所有信息。但是,我希望它查看嵌套数组的内容并比较这些内容,例如,我需要它来查看哪些id
、linklabel
和url
在$pageids
中,而不在$parentpages
中,然后返回这些值。
如何才能使array_diff_assoc()
在嵌套数组的键上运行,而不是在第一个数组的键上运行,以便最终结果是一个包含$pageids
中的[0]、[3]和[4]数组内容的数组?
预期结果:
array (
0 =>
array (
'id' => 1,
'linklabel' => 'Home',
'url' => 'home',
),
3 =>
array (
'id' => 6,
'linklabel' => 'Logo Design',
'url' => 'logodesign',
),
4 =>
array (
'id' => 15,
'linklabel' => 'Content Writing',
'url' => 'contentwriting',
),
)
推荐答案
要检查多维,请尝试执行以下操作:
$pageWithNoChildren = array_map('unserialize',
array_diff(array_map('serialize', $pageids), array_map('serialize', $parentpage)));
array_map()
通过serialize()
运行主数组的每个子数组,从而将每个子数组转换为该子数组的字符串表示形式- 主数组现在的值不是数组,而是子数组的字符串表示
array_diff()
现在每个要比较的数组都有一个一维数组- 返回差异后
array_map()
运行数组结果(差异)至unserialize()
将字符串表示形式转换回子数组
Q.E.D.
这篇关于获取两个二维数组的关联行之间的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:获取两个二维数组的关联行之间的差异
基础教程推荐
猜你喜欢
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01