Comparando linhas associativas de matrizes multidimensionais
Você tem duas matrizes multidimensionais, $pageids e $parentpage, onde cada linha representa um registro com colunas 'id', 'linklabel' e 'url'. Você deseja encontrar as linhas presentes em $pageids, mas não em $parentpage, criando efetivamente uma matriz ($pageWithNoChildren) com as linhas ausentes.
No entanto, usar array_diff_assoc() diretamente nessas matrizes não funcionará como esperado porque compara as chaves primárias da matriz, não o conteúdo das linhas aninhadas. Para comparar as linhas aninhadas, podemos primeiro convertê-las em arrays unidimensionais usando array_map() e a função serialize().
$serializedPageids = array_map('serialize', $pageids); $serializedParentpage = array_map('serialize', $parentpage);
Depois de convertê-los, podemos usar array_diff() para comparar esses arrays unidimensionais e obter a diferença.
$serializedDifference = array_diff($serializedPageids, $serializedParentpage);
Finalmente, podemos converter a diferença serializada de volta para matrizes multidimensionais usando array_map() e a função unserialize().
$pageWithNoChildren = array_map('unserialize', $serializedDifference);
Este processo nos permite comparar o conteúdo das linhas aninhadas e extraia as linhas que estão presentes em $pageids, mas não em $parentpage, resultando na saída esperada:
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', ), )
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3