我有两个数组,这些数组包含关于id
、linklabel
和url
的信息,格式如下:
$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
中不存在的信息 - 这将组成另一个名为$pageWithNoChildren
的数组。然而,当我使用以下代码时:
$pageWithNoChildren = array_diff_assoc($pageids,$parentpage);
array_diff_assoc()
在第一层级上运行,因此它看到$pageids
和$parentpages
都具有[0]和[1]键,因此忽略它们并从$pageids
中的[2]开始返回所有信息。但是我希望它查看嵌套数组的内容并比较它们,例如,我需要它查看哪些id
、linklabel
和url
在$pageids
中而不在$parentpages
中,并返回这些值。如何使
array_diff_assoc()
在嵌套数组的键上运行而不是在第一个数组的键上,以便最终结果是一个包含来自$pageids
的[0]、[3]和[4]数组内容的数组?期望结果:
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',
),
)