Heim >Backend-Entwicklung >PHP-Problem >Zusammenfassung der Methoden zum Entfernen doppelter Werte aus PHP-Arrays
So entfernen Sie doppelte Werte aus PHP-Arrays: 1. Verwenden Sie die Traversal-Abfrage, um doppelte Array-Elemente zu löschen. 2. Verwenden Sie die in PHP integrierte Funktion „array_unique“, um doppelte Werte im Array zu löschen . Verwenden Sie „array_flip“, um einen Deduplizierungseffekt zu erzielen.
Eine Zusammenfassung von Methoden zum Entfernen doppelter Werte aus PHP-Arrays
Mehrere PHP-Methoden zum Löschen von Array-Elementen In vielen Fällen kommt es zu Duplikaten im Array. Was sollten wir also tun, wenn wir doppelte Inhalte im Array löschen? Diese Elemente müssen eindeutig bleiben, daher finden wir Möglichkeiten, sie zu löschen Verwendung von Traversal-Abfragen.
Empfohlen: "PHP-Tutorial"
Methode 1. Doppelte Array-Instanzen vollständig löschen -----Ein Element im Array löschen
function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_value($arr[$key], $var); } else { $value = trim($value); if ($value == $var) { unset($arr[$key]); } else { $arr[$key] = $value; } } } }
$a ist ein Array:
count($a); //得到4 unset($a[1]); //删除第二个元素 count($a); //得到3 echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue, echo $a[1]; //无值 ?>
Das heißt, nach dem Löschen der Elemente im Array hat sich die Anzahl der Elemente im Array (erhalten mit count()) geändert, die Array-Indizes jedoch nicht Vor dem Löschen des Arrays muss der Schlüssel zum Bedienen des entsprechenden Werts verwendet werden.
Später habe ich eine andere Methode übernommen, die eigentlich überhaupt keine „Methode“ heißt. Ich habe die vorgefertigte Funktion array_splice() in PHP4 verwendet.
count ($a); //得到4 array_splice($a,1,1); //删除第二个元素 count ($a); //得到3 echo $a[2]; //得到yellow echo $a[1]; //得到blue ?>
Methode 2. Funktion zum Löschen doppelter Elemente in einem Array
function delmember(&$array, $id) { $size = count($array); for($i = 0; $i <$size - $id - 1; $i ++) { $array[$id + $i] = $array[$id + $i + 1]; } unset($array[$size - 1]); }
Ergänzendes Beispiel:
Methode 1. PHP verfügt über eine integrierte Funktion array_unique, die verwendet werden kann Löschen Sie Duplikate in einem Array. Wert
array_unique – Entfernen Sie doppelte Werte im Array
array_unique Beschreibung
array array_unique (Array-Array)
array_unique () akzeptiert ein Array als Eingabe und gibt ein neues Array
ohne doppelte Werte zurück. Beachten Sie, dass die Schlüsselnamen unverändert bleiben. array_unique() sortiert die Werte zunächst als Zeichenfolgen, behält dann nur den ersten gefundenen Schlüssel für jeden Wert bei und ignoriert dann alle nachfolgenden Schlüssel. Dies bedeutet nicht, dass das erste Vorkommen desselben Werts in einem unsortierten Array erhalten bleibt.
Hinweis: Zwei Einheiten gelten genau dann als gleich, wenn (Zeichenfolge) $elem1 === (Zeichenfolge) $elem2. Das heißt, wenn die Ausdrücke der Zeichenfolgen gleich sind.
Die erste Einheit bleibt erhalten.
Beispiel: array_unique()
<?php $input = array("a" => "green", "red", "b" => "green", "blue", "red"); $result = array_unique($input); print_r($result); ?>
Das obige Beispiel gibt Folgendes aus:
Array ( [a] => green [0] => red [1] => blue )
Methode 2, array_flip, um einen Deduplizierungseffekt zu erzielen
Eine andere Methode ist zu verwenden php Die Funktion array_flip wird verwendet, um indirekt den Deduplizierungseffekt zu erzielen.
array_flip ist eine Funktion, die die Schlüssel und Werte eines Arrays umkehrt. Es verfügt über eine Funktion, die besagt, dass zwei Werte im Array gleich sind , dann wird der letzte Schlüssel und Wert beibehalten. Wir verwenden diese Funktion, um die Deduplizierung von Arrays indirekt zu implementieren.
<?php $arr = array("a"=>"a1","b"=>'b1',"c"=>"a2","d"=>"a1"); $arr1 = array_flip($arr); print_r($arr1);//先反转一次,去掉重复值,输出Array ( [a1] => d [b1] => b [a2] => c ) $arr2 = array_flip($arr); print_r($arr2);//再反转回来,得到去重后的数组,输出Array ( [a1] => d [b1] => b [a2] => c ) $arr3 = array_unique($arr); print_r($arr3);//利用php的array_unique函数去重,输出Array ( [a] => a1 [b] => b1 [c] => a2 ) ?>
Der Unterschied zwischen den beiden Methoden besteht darin, dass das, was durch die Verwendung von array_flip erhalten wird, erhalten bleibt der letzte Schlüssel und Wert des wiederholten Elements und was mit array_unique erhalten wird Es ist der erste Schlüssel und Wert von zwei wiederholten Elementen.
Das obige ist der detaillierte Inhalt vonZusammenfassung der Methoden zum Entfernen doppelter Werte aus PHP-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!