Heim >Backend-Entwicklung >PHP-Problem >So überprüfen Sie, ob in einem Array in PHP Duplikate vorhanden sind
In PHP ist das Überprüfen eines Arrays auf doppelte Werte eine grundlegende Aufgabe. In diesem Artikel untersuchen wir, wie Sie überprüfen können, ob in einem Array in PHP doppelte Werte vorhanden sind, und stellen einige Lösungen bereit.
1. Integrierte PHP-Funktionen verwenden
PHP verfügt über viele nützliche integrierte Funktionen, mit denen sich Array-Probleme in PHP leicht lösen lassen. Hier ist eine dieser Funktionen:
array_unique() – Duplikate aus einem Array entfernen
Wenn Ihr Ziel darin besteht, doppelte Werte vollständig zu entfernen, ist diese Methode sehr einfach. Es wird ein neues Array zurückgegeben, das nur eindeutige Werte enthält. Wenn es ein Sortierproblem gibt, können Sie zum Sortieren die Funktion sort() verwenden.
Zum Beispiel:
$array = array(1, 2, 2, 3, 4, 4, 4, 5); $array = array_unique($array); print_r($array);
Ausgabe:
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [7] => 5 )
Wie oben gezeigt, haben wir gerade das vorherige Array an die Funktion array_unique()
übergeben und dieselben Werte dedupliziert. Diese Methode ist jedoch nur dazu geeignet, doppelte Werte vollständig zu eliminieren. array_unique()
函数,并且对相同的值进行了去重。但这个方法只适用于完全消除重复值的情况下。
二、使用PHP循环
如果你需要找到数组中所有的重复值,可能最好的选择是使用循环。以下是一种使用 PHP 循环查找重复值的方法:
$array = array(2, 5, 6, 2, 8, 5, 1); $result_array = array(); foreach ($array as $val) { $result_array[$val] = isset($result_array[$val]) ? ++$result_array[$val] : 1; } foreach ($result_array as $key => $val) { if ($val > 1) { echo "{$key} 重复了{$val}次 <br>"; } }
输出:
2 重复了2次 5 重复了2次
在上面的代码中,我们使用一个循环来遍历数组,并将每个元素用作结果数组的关键字。如果一个键被接管了,那么它被自增,每次出现一个键。如果有任何键被重复了很多次,那么我们可以通过另一个循环来输出这个元素以及出现的次数。
三、使用PHP count()函数
有时候,我们需要快速检查一个数组中是否有重复值,并且不需要移除重复值。在这种情况下,我们可以使用 PHP 的 count() 函数。
下面是这种方法的示例:
$array = array(2, 5, 6, 2, 8, 5, 1); if (count($array) === count(array_unique($array))) { echo "没有重复值"; } else { echo "有重复值"; }
输出:
有重复值
在上面的代码中,我们使用array_unique()函数来去重,然后用count()函数检查两个数组的大小是否相同。如果它们是相同并且数组内没有重复值,那么count($array) === count(array_unique($array))
$array = array(2, 5, 6, 2, 8, 5, 1); $splObj = new SplObjectStorage(); foreach ($array as $value) { $splObj->attach($value); } if (count($array) === $splObj->count()) { echo "没有重复值"; } else { echo "有重复值"; }Ausgabe:
rrreee
Ausgabe:rrreee
Im obigen Code verwenden wir die Funktion array_unique(), um Duplikate zu entfernen und verwenden dann die Funktion count(), um zu überprüfen, ob die beiden Arrays gleich sind Größe. Wenn sie gleich sind und es keine doppelten Werte im Array gibt, wirdcount($array) === count(array_unique($array))
als wahr ausgewertet. 🎜🎜Fazit🎜🎜Überprüfen, ob ein Array doppelte Werte enthält, kann in PHP eine häufige Aufgabe sein. In diesem Artikel haben wir drei Möglichkeiten besprochen, um zu überprüfen, ob in einem PHP-Array doppelte Werte vorhanden sind: 🎜🎜🎜Mit der in PHP integrierten Funktion array_unique() können Sie doppelte Werte aus einem Array entfernen. 🎜🎜Mit der PHP-Schleife können Sie alle doppelten Werte finden. 🎜🎜Verwenden Sie die PHP-Funktion count(), um schnell zu überprüfen, ob ein Array doppelte Werte enthält. 🎜🎜🎜Darüber hinaus können ähnliche Effekte auch mit Sammlungsmethoden erzielt werden. Verwenden Sie einfach die in PHP integrierte SplObjectStorage-Klasse. Abschließend wird ein Codeabschnitt zur Verfügung gestellt, der die SplObjectStorage-Klasse verwendet, um nach doppelten Werten zu suchen: 🎜rrreee🎜Das Obige ist eine Methode, mit der PHP verwendet werden kann, um zu überprüfen, ob ein Array doppelte Werte enthält es wird Ihnen hilfreich sein. 🎜Das obige ist der detaillierte Inhalt vonSo überprüfen Sie, ob in einem Array in PHP Duplikate vorhanden sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!