首页 > 后端开发 > php教程 > 如何在多维数组中查找不同的嵌套数组?

如何在多维数组中查找不同的嵌套数组?

Susan Sarandon
发布: 2024-11-16 14:19:03
原创
896 人浏览过

How to Find Dissimilar Nested Arrays within Multidimensional Arrays?

在多维数组中查找不同的嵌套数组

考虑以下两个包含关联信息行的数组:

$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 中不存在。然而,在这些数组的第一层使用 array_diff_assoc() 并不能提供所需的结果。

为了克服这一挑战,我们可以利用 array_map() 和 serialize() 函数的组合。这种方法将每个子数组转换为字符串表示,有效地扁平化多维结构。

$pageWithNoChildren = array_map('unserialize',
    array_diff(array_map('serialize', $pageids), array_map('serialize', $parentpage)));
登录后复制
  1. array_map('serialize', $pageids):将 $pageids 中的每个子数组转换为表示其结构的字符串。
  2. array_map('serialize', $parentpage):相同的过程$parentpage.
  3. array_diff():比较字符串表示形式并返回差异数组。
  4. array_map('unserialize', ...):将字符串差异转换回子数组恢复所需的结构。

生成的 $pageWithNoChildren 数组包含 $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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板