比较多维数组的关联行
您有两个多维数组,$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中文网其他相关文章!