Heim > Artikel > Backend-Entwicklung > PHP-effiziente Array-Deduplizierung
Mit der Funktion array_unique() von PHP können Sie ein Array übergeben, dann doppelte Werte entfernen und ein Array mit eindeutigen Werten zurückgeben. In diesem Artikel werde ich Ihnen hoffentlich eine schnellere Implementierung der Array-Deduplizierung vorstellen wird für alle hilfreich sein.
Übersicht
Mit der PHP-Funktion array_unique() können Sie ein Array übergeben und dann doppelte Werte entfernen, wodurch ein Array mit eindeutigen Werten zurückgegeben wird. Diese Funktion funktioniert die meiste Zeit gut. Wenn Sie jedoch versuchen, die Funktion array_unique() für ein großes Array zu verwenden, wird sie langsamer ausgeführt.
Es gibt eine bessere und schnellere Funktion array_flip(), anstatt die Funktion array_unique() zu verwenden, um ein eindeutiges Array zu erstellen. Diese magische Funktion vertauscht den Schlüssel und den Wert jedes Elements im Array. Da der Schlüsselwert eindeutig sein muss, erhalten Sie das gleiche Ergebnis wie die Funktion array_unique().
Eine schnellere Möglichkeit, PHP-Arrays zu deduplizieren
/* 创建一个包含重复值的,一共四个元素的数组 */ $array = array('green','blue','orange','blue'); /* 翻转数组,你将会得到唯一键值的数组 array('green'=>0,'blue'=>1,'orange'=>2); */ $array = array_flip($array); /* 然后再翻转一次,将键和值重新放置,然后得到数组:array(0=>'green',1=>'blue',2=>'orange'); */ $array = array_flip($array);
Weil wir einige Elemente haben wurden entfernt, sodass das Array nicht wie eine normale Sequenz aussieht. Beispielsweise erhalten wir: array(0=>'A',2=>'B',5=>'C');. In einigen Fällen ist dies kein Problem. Wenn Sie jedoch möchten, dass die Array-Schlüssel in numerischer Reihenfolge bleiben, können Sie eine oder zwei Methoden verwenden, um das Problem zu lösen, dass die Schlüsselwerte nicht in der richtigen Reihenfolge sind.
Verwenden Sie array_merge, um die Schlüssel des Arrays zu reparieren
Die Funktion sortiert nach dem Hinzufügen von array_flip die Schlüssel des Arrays und stellt sie auf den Normalzustand zurück Die Reihenfolge, wie zum Beispiel: 0,1,2,3...
$array = array('green','blue','orange','blue'); $array = array_flip($array); $array = array_flip($array); /* 使用array_merge()函数修复键值*/ $array = array_merge($array);
Die zweite Möglichkeit ist die Verwendung von array_keys
Beachten Sie, dass diese Methode zum Reparieren des Array-Schlüsselwerts etwas schneller ist als die Verwendung der Funktion array_merge(). Sie können im letzten Schritt auch die Funktion array_keys() verwenden (diese Funktion gibt den umgedrehten Wert zurück). Wenn Sie dann die Werte im Array umdrehen, werden die Schlüssel der Reihe nach erstellt.
$array = array('green','blue','orange','blue'); $array = array_flip($array); /* 跟第一个例子一样,但是现在我们先提取数组的键值 */ $array = array_keys($array);
Fazit
Im Vergleich zur Verwendung der array_unique-Funktion auf einem Bei einem großen Array gibt es eine effektive Leistungsverbesserung.
Verwandte Empfehlungen:
Zusammenfassung der PHP-Array-Sortiermethode
Methoden zum Konvertieren zwischen PHP-Arrays und Strings
Einige Einführung in PHP-Array-Funktionen
Das obige ist der detaillierte Inhalt vonPHP-effiziente Array-Deduplizierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!