Heim > Backend-Entwicklung > PHP-Tutorial > Wie vergleiche ich assoziative Zeilen zweidimensionaler Arrays in PHP?

Wie vergleiche ich assoziative Zeilen zweidimensionaler Arrays in PHP?

Barbara Streisand
Freigeben: 2024-11-09 13:54:02
Original
379 Leute haben es durchsucht

How to Compare Associative Rows of 2-Dimensional Arrays in PHP?

Vergleichen Sie assoziative Zeilen zweidimensionaler Arrays: Ein umfassender Leitfaden

Mehrdimensionale Arrays sind eine leistungsstarke Möglichkeit, Daten in PHP zu organisieren. aber der Vergleich kann eine Herausforderung sein. Diese Frage untersucht, wie man assoziative Zeilen zweier zweidimensionaler Arrays mithilfe der Funktion array_diff_assoc() effektiv vergleicht.

Herausforderung:

Das Ziel besteht darin, die zu identifizieren und zu extrahieren Zeilen aus $pageids, die in $parentpage nicht vorhanden sind. Die Funktion array_diff_assoc() dient zum Vergleich assoziativer Arrays, arbeitet jedoch auf der ersten Ebene der Arrays und ignoriert die verschachtelten Zeilen.

Das Problem:

Die bereitgestellter Code:

$pageWithNoChildren = array_diff_assoc($pageids,$parentpage);
Nach dem Login kopieren

gibt falsche Ergebnisse zurück, da die verschachtelten Zeilen ignoriert und nur die Schlüssel berücksichtigt werden der ersten Ebene.

Lösung:

Die vorgeschlagene Lösung beinhaltet die Konvertierung jedes Unterarrays in eine String-Darstellung mithilfe von serialize(). Dadurch werden die mehrdimensionalen Arrays in eindimensionale Arrays umgewandelt:

$diff = array_diff(array_map('serialize', $pageids), array_map('serialize', $parentpage));
Nach dem Login kopieren

Anschließend werden die Unterschiede mit unserialize() wieder in Unterarrays umgewandelt:

$pageWithNoChildren = array_map('unserialize', $diff);
Nach dem Login kopieren

Diese Methode effektiv vergleicht den Inhalt der verschachtelten Zeilen, was zu der folgenden erwarteten Ausgabe führt:

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',
  ),
)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie vergleiche ich assoziative Zeilen zweidimensionaler Arrays in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage