Heim >Backend-Entwicklung >PHP-Problem >PHP entfernt Duplikate aus zweidimensionalen Arrays
In PHP müssen wir häufig Arrays verarbeiten und betreiben. Manchmal müssen wir doppelte Elemente in einem Array entfernen. Hier ist eine Deduplizierungsmethode für zweidimensionale Arrays.
Methode 1: Verwenden Sie die Funktionen array_map und serialize
Die Funktion array_map kann eine Rückruffunktion auf jedes Element im Array anwenden, und die Rückruffunktion gibt ein neues Element zurück. Wir können die Serialisierungsfunktion verwenden, um jedes Element zu serialisieren, dann die Array_unique-Funktion von PHP verwenden, um die serialisierten Elemente zu deduplizieren und schließlich die serialisierten Elemente in die Originalelemente zu deserialisieren.
Beispielcode:
function uniqueArray($array) { return array_map("unserialize", array_unique(array_map("serialize", $array))); } // 示例数据 $data = array( array("id" => 1, "name" => "apple"), array("id" => 2, "name" => "banana"), array("id" => 1, "name" => "apple"), array("id" => 3, "name" => "pear") ); // 执行去重操作 $result = uniqueArray($data); // 输出结果 print_r($result);
Ausgabeergebnis:
Array ( [0] => Array ( [id] => 1 [name] => apple ) [1] => Array ( [id] => 2 [name] => banana ) [3] => Array ( [id] => 3 [name] => pear ) )
Im obigen Code definieren wir zunächst eine UniqueArray-Funktion, die die Funktion array_map verwendet, um jedes Element im Array zu serialisieren, und dann die Funktion array_unique verwendet, um das serialisierte The zu serialisieren Elemente werden dedupliziert und schließlich werden die serialisierten Elemente mithilfe der Funktion unserialize in die ursprünglichen Elemente deserialisiert.
Methode 2: Verwenden Sie die Funktionen array_reduce und array_merge.
Zusätzlich zur Verwendung der Funktionen array_map und serialize können wir auch die Funktionen array_reduce und array_merge verwenden, um die Elemente im zweidimensionalen Array zu verflachen, um ein eindimensionales Array zu bilden. Verwenden Sie dann die Funktion array_unique, um das eindimensionale Array zu deduplizieren, und verwenden Sie schließlich die Funktion array_map, um das eindimensionale Array wieder in ein zweidimensionales Array umzuwandeln.
Beispielcode:
function uniqueArray($array) { return array_map("unserialize", array_unique(array_map("serialize", array_reduce($array, "array_merge", array())))); } // 示例数据 $data = array( array("id" => 1, "name" => "apple"), array("id" => 2, "name" => "banana"), array("id" => 1, "name" => "apple"), array("id" => 3, "name" => "pear") ); // 执行去重操作 $result = uniqueArray($data); // 输出结果 print_r($result);
Ausgabeergebnis:
Array ( [0] => Array ( [id] => 1 [name] => apple ) [1] => Array ( [id] => 2 [name] => banana ) [3] => Array ( [id] => 3 [name] => pear ) )
Im obigen Code definieren wir zunächst eine UniqueArray-Funktion, die die Funktionen array_reduce und array_merge verwendet, um die Elemente im zweidimensionalen Array in ein eindimensionales Array zu reduzieren Verwenden Sie dann die Funktion array_map, um die Elemente im eindimensionalen Array zu serialisieren, zu deduplizieren und deserialisieren und schließlich das eindimensionale Array wieder in ein zweidimensionales Array umzuwandeln.
Zusammenfassung
Beide der beiden oben genannten Methoden können zweidimensionale Arrays deduplizieren, aber Methode eins verwendet Serialisierung, um den Typ der Originaldaten während der Deduplizierung beizubehalten, während Methode zwei erfordert, dass die zweite Methode die Elemente in einem 1D-Array flacht und dann konvertiert das 1D-Array zurück in ein 2D-Array. Welche Methode verwendet werden soll, kann je nach tatsächlichem Bedarf und Datenvolumen ausgewählt werden.
Das obige ist der detaillierte Inhalt vonPHP entfernt Duplikate aus zweidimensionalen Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!