Comparaison de lignes associatives de tableaux multidimensionnels
Vous disposez de deux tableaux multidimensionnels, $pageids et $parentpage, où chaque ligne représente un enregistrement avec des colonnes 'id', 'linklabel' et 'url'. Vous souhaitez rechercher les lignes présentes dans $pageids mais pas dans $parentpage, créant ainsi un tableau ($pageWithNoChildren) avec les lignes manquantes.
Cependant, utiliser array_diff_assoc() directement sur ces tableaux ne fonctionnera pas comme prévu car il compare les clés primaires du tableau, pas le contenu des lignes imbriquées. Pour comparer les lignes imbriquées, nous pouvons d'abord les convertir en tableaux unidimensionnels à l'aide de array_map() et de la fonction serialize().
$serializedPageids = array_map('serialize', $pageids); $serializedParentpage = array_map('serialize', $parentpage);
Après les avoir convertis, nous pouvons utiliser array_diff() pour comparer ces tableaux unidimensionnels et obtenir la différence.
$serializedDifference = array_diff($serializedPageids, $serializedParentpage);
Enfin, nous pouvons reconvertir la différence sérialisée en tableaux multidimensionnels à l'aide de array_map() et de la fonction unserialize().
$pageWithNoChildren = array_map('unserialize', $serializedDifference);
Ce processus nous permet de comparer le contenu des lignes imbriquées et d'extraire les lignes qui sont présentes dans $pageids mais pas dans $parentpage, ce qui donne le résultat attendu :
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', ), )
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3