首页  >  文章  >  后端开发  >  如何查找一个多维数组中存在但另一个多维数组中不存在的行?

如何查找一个多维数组中存在但另一个多维数组中不存在的行?

Susan Sarandon
Susan Sarandon原创
2024-11-09 09:39:02814浏览

How to Find Rows Present in One Multidimensional Array but Not in Another?

比较多维数组的关联行

您有两个多维数组,$pageids 和 $parentpage,其中每行代表一个包含列的记录“id”、“链接标签”和“url”。您想要查找 $pageids 中存在但 $parentpage 中不存在的行,从而有效地创建一个包含缺失行的数组 ($pageWithNoChildren)。

但是,直接在这些数组上使用 array_diff_assoc() 将无法按预期工作因为它比较主数组键,而不是嵌套行的内容。要比较嵌套行,我们可以首先使用 array_map() 和 serialize() 函数将它们转换为一维数组。

$serializedPageids = array_map('serialize', $pageids);
$serializedParentpage = array_map('serialize', $parentpage);

转换它们之后,我们可以使用 array_diff() 来比较这些行维数组并获取差值。

$serializedDifference = array_diff($serializedPageids, $serializedParentpage);

最后,我们可以使用 array_map() 将序列化差值转换回多维数组, unserialize() 函数。

$pageWithNoChildren = array_map('unserialize', $serializedDifference);

此过程允许我们比较嵌套行的内容并提取 $pageids 中存在但 $parentpage 中不存在的行,从而产生预期的输出:

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',
  ),
)

以上是如何查找一个多维数组中存在但另一个多维数组中不存在的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn