Heim >Backend-Entwicklung >PHP-Problem >So löschen Sie dieselben Elemente in einem zweidimensionalen Array in PHP
Das Löschen identischer Elemente in einem zweidimensionalen Array ist eine sehr häufige Aufgabe in PHP. Dies erfordert oft komplexe Berechnungen, um festzustellen, welche Elemente identisch sind, bevor die Löschung durchgeführt werden kann. Glücklicherweise bietet PHP einige nützliche Funktionen, die uns bei der Erledigung solcher Aufgaben unterstützen. In diesem Artikel werden einige Funktionen und Techniken vorgestellt, die Ihnen beim Löschen identischer Elemente in einem zweidimensionalen Array in PHP helfen.
Die Funktion array_map wendet eine Funktion auf jedes Element eines Arrays an und gibt ein neues Array zurück. Wir können die Funktionen array_map und array_unique verwenden, um identische Elemente in einem zweidimensionalen Array zu löschen. Zuerst verwenden wir die Funktion array_map, um alle Werte im 2D-Array zu extrahieren. Anschließend verwenden wir die Funktion array_unique, um doppelte Werte in diesem neuen Array zu entfernen. Abschließend verwenden wir die Funktion array_map, um die extrahierten Werte in das Format des ursprünglichen 2D-Arrays umzuwandeln.
function removeDuplicates($arr) { $flatten = array_map('array_values', $arr); $unique_values = array_map('unserialize', array_unique(array_map('serialize', $flatten))); return array_map('array_combine', array_keys($arr), array_values($unique_values)); }
Diese Funktion funktioniert wie folgt:
Wir verwenden zunächst die Funktion array_map
, um das zweidimensionale Array in ein eindimensionales Array umzuwandeln. Diese Funktion gibt ein neues Array zurück, wobei jedes Element alle Werte im kleinen Array darstellt und diese Werte dann im großen Array gekapselt werden. array_map
函数将二维数组转化如一维数组。这个函数将会返回一个新的数组,其中每个元素代表着小数组中的所有值,这些值再被封装在大数组中。
array_unique
函数会删除 $flatten
数组中的重复值,并重新索引所有的数字键(如果它们存在的话)。
之后,我们发现索引已经被重置了,所以将值 unserialize,重新索引,并使用 array_combine 函数映射回原来的键 / 值对。
要使用 foreach 遍历数组来删除相同的元素,我们需要先遍历并创建一个关联数组。在得到所有的值后,我们可以使用 array_unique 函数删除数组中的重复值。最后,我们可以使用 foreach 循环重复映射值。
function removeDuplicates($arr) { $new_arr = array(); foreach ($arr as $key => $value) { $new_arr[$key] = serialize($value); } $unique_arr = array_unique($new_arr); foreach ($unique_arr as $key => $value) { $unique_arr[$key] = unserialize($value); } return $unique_arr; }
这段代码会遍历数组,将键和一个经过序列化的数组值添加到 $new_arr
array_unique
entfernt doppelte Werte aus dem Array $flatten
und indiziert alle numerischen Tasten neu, falls vorhanden. Um mit foreach das Array zu durchqueren und dieselben Elemente zu löschen, müssen wir Folgendes tun Durchqueren und erstellen Sie ein assoziatives Array. Nachdem wir alle Werte erhalten haben, können wir die Funktion array_unique verwenden, um doppelte Werte im Array zu entfernen. Schließlich können wir eine foreach-Schleife verwenden, um Werte wiederholt abzubilden. function removeDuplicates($arr) {
$unique_arr = array();
foreach ($arr as $key => $value) {
if (!in_array($value, $unique_arr)) {
$unique_arr[$key] = $value;
}
}
return $unique_arr;
}
Dieser Code durchläuft das Array und fügt den Schlüssel und einen serialisierten Array-Wert zum assoziativen Array $new_arr
hinzu. Als nächstes verwenden wir die Funktion array_unique, um doppelte Elemente zu entfernen. Abschließend verwenden wir erneut foreach, um das Array zu deserialisieren und den Index neu zu zeichnen.
Das obige ist der detaillierte Inhalt vonSo löschen Sie dieselben Elemente in einem zweidimensionalen Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!