Use array_diff_assoc () ou obtenha a diferença de matrizes multidimensionais

Estou lutando com o que acho que deve ser uma questão realmente fácil há algum tempo e simplesmente não consigo descobrir a resposta.

Eu tenho duas matrizes e essas matrizes contêm informações sobre id, linklabel e url no seguinte formato:

$pageids
--------
Array ( 
[0] => Array 
( [id] => 1 
  [linklabel] => Home 
  [url] => home )

[1] => Array 
( [id] => 2 
  [linklabel] => Graphic Design 
  [url] => graphicdesign ) 

[2] => Array 
( [id] => 3 
  [linklabel] => Other Design 
  [url] => otherdesign ) 

[3] => Array 
( [id] => 6 
  [linklabel] => Logo Design 
  [url] => logodesign ) 

[4] => Array 
( [id] => 15 
  [linklabel] => Content Writing 
  [url] => contentwriting ) 
) 


$parentpage
-----------
Array ( 
[0] => Array 
( [id] => 2 
  [linklabel] => Graphic Design 
  [url] => graphicdesign ) 

[1] => Array 
( [id] => 3 
  [linklabel] => Other Design 
  [url] => otherdesign ) ) 

Agora estou tentando comparar esses dois para encontrar as informações que estão em$pageids mas NÃO em$parentpage - isso formará outra matriz chamada$pageWithNoChildren. No entanto, quando eu uso o seguinte código:

$pageWithNoChildren = array_diff_assoc($pageids,$parentpage);

oarray_diff_assoc() é executado no primeiro nível das matrizes e, portanto, vê que ambos$pageids e$parentpages tem as teclas [0] e [1] para que eles sejam ignorados e retornem todas as informações de$pageids de [2] em diante. No entanto, quero que ele analise o conteúdo das matrizes aninhadas e compare-as, por exemplo. Preciso ver qual ID, linklabel e URL estão$pageids e não em$parentpages e retorne esses valores.

Como posso obter oarray_diff_assoc() para executar nas chaves das matrizes aninhadas e não nas chaves das primeiras matrizes, portanto o resultado final é uma matriz que contém o conteúdo das matrizes [0], [3] e [4] de$pageids?

questionAnswers(3)

yourAnswerToTheQuestion