比较多维数组的关联行
您有两个多维数组,$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', ), )
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3