在多维数组中查找不同的嵌套数组
考虑以下两个包含关联信息行的数组:
$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)));
生成的 $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中文网其他相关文章!