Comment trouver des lignes présentes dans un tableau multidimensionnel mais pas dans un autre ?

Susan Sarandon
Libérer: 2024-11-09 09:39:02
original
808 Les gens l'ont consulté

How to Find Rows Present in One Multidimensional Array but Not in Another?

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 trouver 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);
Copier après la connexion

Après les avoir converties, nous pouvons utiliser array_diff() pour comparer celles-ci. -tableaux dimensionnels et obtenir la différence.

$serializedDifference = array_diff($serializedPageids, $serializedParentpage);
Copier après la connexion

Enfin, nous pouvons reconvertir la différence sérialisée en tableaux multidimensionnels en utilisant array_map() et le Fonction unserialize().

$pageWithNoChildren = array_map('unserialize', $serializedDifference);
Copier après la connexion

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',
  ),
)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal