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);
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));
Anschließend werden die Unterschiede mit unserialize() wieder in Unterarrays umgewandelt:
$pageWithNoChildren = array_map('unserialize', $diff);
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', ), )
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!