我有两个数组,这些数组包含有关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()
在嵌套数组的键而不是第一个数组的键上运行,所以最终结果是一个包含 [0]、[3] 和 [4] 数组内容的数组$pageids
?
预期结果:
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',
),
)