Heim >Backend-Entwicklung >PHP-Problem >So löschen Sie dieselben Elemente in einem zweidimensionalen Array in PHP

So löschen Sie dieselben Elemente in einem zweidimensionalen Array in PHP

PHPz
PHPzOriginal
2023-04-26 09:10:02588Durchsuche

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.

  1. Verwenden der Funktionen array_map und array_unique

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 函数映射回原来的键 / 值对。

  1. 使用 foreach 遍历数组

要使用 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

Die Funktion array_unique entfernt doppelte Werte aus dem Array $flatten und indiziert alle numerischen Tasten neu, falls vorhanden.
  1. Später stellen wir fest, dass der Index zurückgesetzt wurde, also deserialisieren wir den Wert, indizieren ihn neu und verwenden die Funktion array_combine, um ihn wieder dem ursprünglichen Schlüssel/Wert-Paar zuzuordnen.
    1. Verwenden Sie foreach, um das Array zu durchqueren.

      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.

      Anderer Weg als der erste Wert#🎜🎜##🎜🎜##🎜🎜#Die dritte Methode unterscheidet sich von den ersten beiden Methoden. Es durchläuft alle Elemente, behält aber nur den ersten Wert bei. Ebenso können wir eine foreach-Schleife verwenden, um ein Array zu durchlaufen. Für nicht doppelte Werte fügen wir dem Array $unique_arr hinzu, andernfalls überspringen wir das Element einfach. #🎜🎜#rrreee#🎜🎜#Diese Funktion durchläuft alle Array-Elemente und verwendet die Funktion in_array(), um zu prüfen, ob sie dem Array $unique_arr hinzugefügt wurden. Wenn das Element nicht gefunden wird, wird es dem Array hinzugefügt. Die Funktion gibt ein Array #🎜🎜# zurück, in dem alle #🎜🎜# identischen Elemente entfernt wurden. #🎜🎜##🎜🎜#Ob Sie die Funktion array_map oder foreach verwenden, mit den oben genannten Tipps können Sie problemlos dieselben Elemente im PHP-2D-Array löschen. Denken Sie daran, diese Funktionen zu verstehen und zu verwenden, damit Sie effizienter mit Arrays in PHP arbeiten können. #🎜🎜#

    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!

    Stellungnahme:
    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